Writer,Reader,InputStream,OutputStream是所有类的抽象方法。
Write Reader是字符型输入输出流。
InputStream OutPutStream是字节型输入输出流
当我们需要对文件进行操作的时候我们最好使用的方法是BufferedWriter和BufferedReader,因为在这两FileReader和FileWriter更快。并且使用字符型输入输出流在读写中文汉字和(int)数字的时候不会出现乱码!
需要注意的是当我们进行读写操作的时候每次读写之后都需要调用一下.flush()方法,flush()方法的意义是把缓冲区清空,也就是把刚刚你读
写的数据表示出来,如果不调用flush方法,系统默认会是在缓冲区满了之后一同加载出读写的内容,所以很有可能读写的内容不显示出来。
BufferedReader和BufferWriter的一些方法
BufferedReader
String/ readLine() 读一行文字
void /close() 关闭流并释放与之相关联的任何系统资源
BufferWriter
void close(); 关闭流
void flush();刷新流
void newline();写一行分隔符(换行的意思)
void write(String s);
void write(int c);
例子:
在D://java//data.txt中写入0–99个数每个数一行。,并且倒序输出在控制台上。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test{
public static void main(String args[]) {
File file=new File("D://java//data1.txt");
try {
BufferedWriter out =new BufferedWriter(new FileWriter(file));
for(int i=0;i<100;i++) {
out.write(i+"");
out.newLine();
out.flush();
}
out.close();
BufferedReader in=new BufferedReader(new FileReader(file));
String count=in.readLine();
String value[]=new String[100];
int num=0;
while(count!=null) {
value[num]=count;
num++;
count=in.readLine();
}
for(int i=99;i>=0;i--) {
System.out.print(value[i]+" ");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
输出结果: