字节流读数据(一次读一个字节数据)
需求:把文件fos.txt中的内容读取出来在控制台输出
FileInputStream:从文件系统中的文件获取输入字节
-
FileInputStream(String name):通过打开与实际文件的连接来创建一个FileInputStream,该文件由文件系统中的路径名name命名
-
使用字节输入流读数据的步骤:
①创建字节输入流对象
②调用字节输入流对象的读数据方法
③释放资源
方法一:
package com.bytestream;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamDemo01 {
public static void main(String[] args) throws IOException {
//创建字节输入流对象
FileInputStream fis = new FileInputStream("基础语法\\fos.txt");
//调用字节输入流对象的读数据方法
//int read():从该输入流读取一个字节的数据
//第一次读取数据
int by = fis.read();
System.out.println(by);
System.out.println((char)by);
//第二次读取数据
by = fis.read();
System.out.println(by);
System.out.println((char)by);
//释放资源
fis.close();
}
}
方法二:使用循环改进读数据
package com.bytestream;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamDemo01 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("基础语法\\fos.txt");
//循环改进
int by = fis.read();
while (by!=-1){
System.out.print((char)by);
by = fis.read();
}
//释放资源
fis.close();
}
}
优化读数据部分
package com.bytestream;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamDemo01 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("基础语法\\fos.txt");
int by;
while ((by=fis.read())!=-1){
System.out.print((char)by);
}
//释放资源
fis.close();
}
}
fis.read():读数据
by=fis.read():把读取到的数据赋值给by
by!=-1:判断读取到的数据是否是-1(将文件中的数据已经读完如果继续进行读操作,by=-1)