缓冲流
BufferedReader和BufferedWriter的源和目的地是字符输入流和字符输出流,可以调用readLine方法读取文件中的一行数据。如下
FileReader input = new FileReader("Test.txt");
BufferedReader input1 = new BufferedReader(input);
String str = input1.readLine();//调用readLine方法读取Test.txt中的一行数据
#####BufferedReader和BufferedWriter称作上层流,它们指向的字符流称作底层流。当需要关闭流的时候只需要关闭上层流,上层流的地层流会自动关闭。
随机流
RandomAccessFile 随机流,它创建的流既可以读也可以写。
两种构造函数
RandomAccessFile(String name,String mode);//mode取r为只读,取rw为可读写
RandomAccessFile(File file,String mode);//指向文件时,不刷新文件
常用方法
cloes()——关闭文件 getFilePointer()——获取当前读写的位置
length()——获取文件长度 read()——从文件中读取一个字节的数据
readBoolean()——读取一个布尔值 readByte()——从文件中读取一个字节【同理还有readChar、readFloat等等】
readLine()——读取一个文本行 seek(long position)——定位读写位置
setLength(long length)——设置文件长度 还有与read对应的write方法
#####随机流的readLine方法读取含有非ASCII字符的文件时(比如文件中有汉字)可能会出现乱码,需要用"iso-8859-1"编码重新编码存放。如下
FileReader file = new FileReader("Hello.txt");
BufferedReader in = new BufferedReader(file);
String str = in.readLine();//用readLine读取一行数据
byte[] b = str.getBytes("iso-8859-1");//用ios-8869-1重新编码
String content = new String(b);//将字节数组转化为字符数组