字节输入流:InputStream(抽象类) FileInputStream FileInputStream的构造方法 FileInputStream(File file) FileInputStream(String name) 字节输入流读取数据两种方式: FileInputStream的成员方法 public int read() public int read(byte[] b)public class FileInputStreamDemo1 { public static void main(String[] args) throws Exception { //1、创建字节输入流对象 //FileInputStream(File file) //读取数据的时候,如果文件不存在,报错 // File file = new File("f.txt"); //f.txt (系统找不到指定的文件。) // File file = new File("e.txt"); // FileInputStream fis = new FileInputStream(file); //FileInputStream(String name) FileInputStream fis = new FileInputStream("e.txt"); //调用read方法读取数据,并输出在控制台上 //public int read(),一次只能读取一个字节,返回的是ASCII码值,强制类型转换 // int read = fis.read(); // System.out.println((char)read); // // int read2 = fis.read(); // System.out.println((char)read2); //如果文件中数据很多的话,还是这样一个字节一个字节的读取,没有做任何改进,即将会很麻烦 //使用循环改进读取 //由于我们不知道什么时候将文件数据读取完毕,所以使用while循环 //控制跳出while循环的条件是什么,数据的下一个字节,如果达到文件的末尾, -1 。 // int read = fis.read(); // while (read != -1) { // System.out.print((char) read); // read = fis.read(); // } //字节输入流读取数据的第一种方式最终版写法: int i = 0; while ((i = fis.read()) != -1) { System.out.print((char) i); } //释放资源 fis.close(); } }
字节输入流读取数据的第二种方式:一次读取一个字节数组 public int read(byte[] b)public class FileInputStreamDemo2 { public static void main(String[] args) throws Exception { //1、创建字节输入流对象 FileInputStream fis = new FileInputStream("e.txt"); byte[] bytes = new byte[1024]; int length = 0; while ((length=fis.read(bytes))!=-1){ System.out.println(new String(bytes,0,length)); } //释放资源 fis.close(); } }
JAVA---IO流(中)
本文详细介绍了Java中的字节输入流InputStream及其子类FileInputStream,包括其构造方法和两种读取数据的方式。通过示例代码展示了如何使用FileInputStream读取文件内容,包括单个字节读取和字节数组读取。强调了循环读取和资源释放的重要性。
摘要由CSDN通过智能技术生成