File character input stream
The difference with FileInputStream FileReader creates char array character input
FileInputStream creates byte array byte input
It can only read ordinary text , but cannot read sound, video and other files. It is more convenient and quick to read the text content.
Similar to the byte input stream. Note that the created array is char[], not byte[]
fileReader = new FileReader("testfile");
char[]chars = new char[4];
int readcount = 0;
while ((readcount = fileReader.read(chars))!=-1){
System.out.println(new String(chars,0,readcount));
}
File character output stream
Can be directly written to the String type
fileWriter = new FileWriter("filewriter");
//1.建立一个char数组,把数组全部内容写入文件
char[] chars = {
'你','好','啊','哈'};
int readcount =0;
fileWriter.write(chars);
//写入数组部分内容
fileWriter.write(chars,0,2);
//2.直接写入String字符串
fileWriter.write("我在学java");
fileWriter.write("\n")
fileWriter.write("输入一个换行符")
fileWriter.flush();
Compare byte output stream
Cannot directly write to String, need to convert the string to an array through getBytes
String string = "我正在学习文件字符输出流";
//把字符串转变成数组getBytes()
byte[]bytes2 = string.getBytes();
fos.write(bytes2);
Only ordinary text files can be copied using FileReader and FileWriter
No reader.avilable() can only be while
reader = new FileReader("D:\\新建文件夹\\test1.txt");
writer = new FileWriter("C:\\Users\\ThinkPad\\Desktop\\学习笔记\\test1.txt");
char[]chars = new char[4];
int readcount = 0;
while ((readcount=reader.read(chars))!=-1){
writer.write(chars);
}