Contents
  1. 1. 一.缓冲输入文件
  2. 2. 二、基本的文件输出

一.缓冲输入文件

  如果想要打开一个文件用于字符输入,可以使用以String或File对象作为文件名的FileInputReader。为了提高速度,我们希望对那个文件进行缓冲,那么我么将所产生的引用传给一个BufferedReader构造器,由于BufferedReader也提供readLine()方法,所以这是我们的最终对象和进行读取的接口。当readLine()将返回null时,你就达到了文件结尾。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

public static String Bread(String filename) throws IOException{
BufferedReader in = new BufferedReader(new FileReader(filename));
String s;
StringBuilder sb = new StringBuilder();
while((s = in.readLine()) != null)
sb.append(s + "\n");
in.close();
return sb.toString();
}


public static void main(String args[]) throws IOException {
System.out.print(Bread("K:\\rot\\fileTwo.java"));
}

字符串sb用来累积文件的全部内容(包括添加的换行符,因为readLine()已经将他们删掉)。最后调用close()关闭文件。

二、基本的文件输出

  • FileWriter 用于写入字符流。要写入原始字节流,请考虑使用 FileOutputStream。
  • FileReader 用于以字符为单位读取文本文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

public static void main(String args[]) throws IOException {

BufferedReader br = new BufferedReader(new FileReader("K:\\rot\\fileTwo.java"));
try{
String str = null;
while((str = br.readLine()) != null)
System.out.println(str);
}
catch(IOException e){
e.printStackTrace();
}
finally{
br.close();
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("K:\\rot\\fileTwo.java"));
BufferedWriter bw = new BufferedWriter(new FileWriter("K:\\rot\\output.txt"));
try{
String str = null;
while((str = br.readLine()) != null){
bw.write(str);
bw.newLine();//由于BufferedReader的rendLIne()是不读入换行符的,所以写入换行时须用newLine()方法
}
}catch(IOException e){
e.printStackTrace();
}
finally{
br.close();
bw.close();
}
}
Contents
  1. 1. 一.缓冲输入文件
  2. 2. 二、基本的文件输出