使用FileReader和FileWriter
路径问题参考印象笔记
注意:最后流一定要关,不然会无法写入到文件
读(读整个文本):
@Test
public void testRead() throws IOException {
FileReader fileReader = null;
try {
File file = new File("a.txt");
fileReader = new FileReader(file);
char[] arr = new char[5];
int len;
while ((len=fileReader.read(arr))!=-1){
System.out.print(new String(arr,0,len));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(fileReader!=null)
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
写:
@Test
public void testWrite() throws IOException {
FileWriter fileWriter = null;
try {
File file = new File("b.txt");
fileWriter = new FileWriter(file,true);
fileWriter.write("hello");
fileWriter.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(fileWriter!=null)
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
一边读一边写(复制):
@Test
public void ReadAndWrite() {
FileReader fileReader = null;
FileWriter fileWriter = null;
try {
File file = new File("a.txt");
File file2 = new File("b.txt");
fileReader = new FileReader(file);
fileWriter = new FileWriter(file2);
char[] arr = new char[5];
int len;
while ((len=fileReader.read(arr))!=-1){
fileWriter.write(arr,0,len);
fileWriter.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(fileReader!=null)
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if(fileWriter!=null)
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
为什么要在finally里关闭流?
答:如果流关闭写在try体里,当异常发生在流关闭前可能导致流无法关闭