学习java第二十一天
字符流
字符流就是在字节流的基础上,加上编码,形成的数据流
字符流出现的意义:因为字节流在操作字符时,可能会有中文导致的乱码,所以由字节流引申出了字符流。
字符输入流:Reader
常用子类:FileReader
文件字符输入流常用方法:
read();
read(char[ ]);
read(char[ ] ,offset,len);
字符输出流: Writer
常用子类:文件字符输出流: Filewriter
文件字符输出常用方法:
writer();
writer(char[ ]);
writer(char[ ],offset,len);
writer(string);
flush()刷新缓冲区
注意:close()方法默认调用了flush()方法,但是flush()方法只刷新缓冲区,而close()还会关闭IO流
package com.itbuluoge.test;
import java.io.FileInputStream;
public class ByteInputFile {
public static String read() throws Exception
{
FileInputStream fit=new FileInputStream("test.txt");
int c;
String sb="";
while((c=fit.read())!=-1)
{
sb+=(char)c;
}
return sb;
}
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
System.out.println(read());
}
}
2.Writer 类
package Demo02;
import java.io.FileWriter;
import java.io.IOException;
public class Demo02Writer {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("D:\\Java\\20\\day21-code\\a.txt");
fw.write(100);//需要被写入的字符还在缓冲区
fw.flush();
fw.write(101);//需要被写入的字符还在缓冲区
fw.flush();
fw.write(102);//需要被写入的字符还在缓冲区
fw.flush();
fw.close();//如果你只写一个字节,那么可以直接用close,但是实际生活中可能会写多次数据。
/*
//关闭之后在写内容会报错
fw.write(102);//需要被写入的字符还在缓冲区
fw.flush();
*/
}
}