IO流–写出数据:从内存中写出数据到硬盘文件里
- 1.输出操作,对应的file如果不存在,则会创建响应文件,并写入数据;
-
- 如果文件存在,调用write方法,默认会覆盖源文件内容
-
- 如果想在文件内容后追加内容,则可设置FileWriter(file,true)
@Test
public void test2() {
FileWriter fileWriter = null;
try {
//1.提供file类的对象
File file = new File("data1.txt");
//2.提供写出流的操作
fileWriter = new FileWriter(file);
//3.写数据
String str = "University";
fileWriter.write(str+"\n");
fileWriter.write("Java");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
//4.关闭流
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//读取文件file1的数据并复制到文件file2
@Test
public void test3(){
FileReader fileReader = null;
FileWriter fileWriter = null;
try {
File file = new File("data.txt");
File file1 = new File("test.txt");
fileReader = new FileReader(file);
fileWriter = new FileWriter(file1, true);
char[] cbuf = new char[5];
int len;
while((len=fileReader.read(cbuf))!=-1)
{
String str = new String(cbuf,0,len);
fileWriter.write(str);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
注意:FileReader 和 FileWriter处理字符流,不能使用字符流来处理图片等字节数据。需要使用FileInputStream/FileOutputStream