Day17_100_IO_FileWriter文件字符输入流
FileWriter文件字符输入流
-
继承结构
Java.lang.Object
- java.io.Writer; 抽象类
java.io.OutputStreamWriter; <转换流: 将字节输出流转换为字符输出流>
java.io.FileWriter; <文件字符输出流> -
文件字节输入、输出流的read和write方法使用字节数组读写数组读写数据,即以字节为单位处理数据,字节流不能够很好操作Unicode字符,比如一个汉字在文件中占2个字节,试过使用字节流,读取不当会出现乱码的现象,
字符输入流和输出流的read和write方法使用字符数组读写即以字符为单位来处理数据。 -
代码
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterTest01 {
public static void main(String[] args) {
//创建文件输出路径
String fileName="D:\\TestFile\\JavaTestFile\\FileWriter.txt";
//创建输出内容
String content="2021年4月12日10点55分";
//创建文件字符输出流对象
FileWriter fw=null;
try {
//创建文件字符输出流
fw= new FileWriter(fileName,true);
//开始写 方式一 write(String str)
fw.write(content); //2021年4月12日10点55分
//开始写入 方式二: write(char[] chars)
char chars[]=new char[512]; //1kb
for (int i = 0; i <content.length() ; i++) {
chars[i]=content.charAt(i);
}
fw.write(chars);
// 开始写入 方式三 write(String str, int offset, int length)
fw.write(content,0,10);
// 方式四
char [] ch={'我','是','中','国','人','!'} ;
fw.write(ch,0,5);
//刷新
fw.flush();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(fw!=null){
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}