FileReader:
package test;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderDemo {
public static void main(String[] args) {
// TODO 自动生成的方法存根
FileReader fr = null;
try{
fr = new FileReader("e:\\test.txt");
/*
//单字符读取
int ch =0;
while((ch = fr.read()) != -1){
System.out.println(((char)ch));
}*/
//字符串读取
char buf [] = new char[1024];
int len = 0;
while((len = fr.read(buf)) != -1){
System.out.println(new String(buf,0,len));
}
}catch(IOException e){
System.out.println(e.toString());
}finally{
if(fr!=null)
try {
fr.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
FileWriter:
package test;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterDemo {
public static void main(String[] args) {
// TODO 自动生成的方法存根
FileWriter fw = null;
try{
//使用FileWriter向硬盘制定路径写入文件,若文件存在,则覆盖。
//若在构造函数内写第二参数,指定为true,则不覆盖源文件,在源文件末尾追加内容。
fw = new FileWriter("e:\\test.txt");
//使用write方法后,还需调用flush方法刷新流中的缓冲区,方可把数据写入目的地(test.txt)
fw.write("hello world");
}catch(IOException e){
System.out.println(e.toString());
}finally{
if(fw!=null){
try {
//在每次使用完流对象后,需要关闭流。
//调用close方法前,会先执行flush方法刷新流的缓冲区。
fw.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
}
tips:可以使用BufferedReader和BufferredWriter对流进行操作,这样可以大大提高流的操作效率。
readLine()和NewLine()方法可以很方便的对字符进行读取。
BufferedReader buffr = new BufferedReader(fileReader); //将流对象fileReader传入构造函数即可。
当完成数据的操作后,调用BufferedReader的close方法关闭流即可。