IO流:字符流
字符编码表:
能识别中文的码表:GNK,UTF-8;
对我们开发而言常见的码表:GBK UTF-8 ISO-8859-1
文字--->(数字) :编码。 “abc”.getBytes() byte[]
(数字)--->文字 : 解码。 byte[] b={97,98,99} new String(b,0,len)
字符输入流:Reader
read():读取单个字符并返回
read(char[]):将数据读取到数组中,并返回读取的个数。
FileReader类:
FileReader(String fileName):在给定从中读取数据的文件名的情况下创建一个新FileReader
字符输出流:Writer
FileWriter类:
flush和close的区别:
flush():将流中的缓冲区缓冲的数据刷新到目的地中,刷新后,流还可以继续使用。
close():关闭资源,但在关闭前会将缓冲区中的数据先刷新到目的地,否则丢失数据,然后在关闭流。流不可以使用。如果写入数据多,一定要一边写一边刷新,最后一次可以不刷新,由close完成刷新并关闭。
下面是一个字符流复制文件的小案例:
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.FileWriter;
import java.io.IOException;
public class Demo01 {
public static void main(String[] args) throws IOException {
//明确目的地
FileWriter fw=new FileWriter("D:\\io\\b\\demo01.txt");
//明确数据源
FileReader fr=new FileReader("D:\\io\\demo01.txt");
int len=0;
while((len=fr.read())!=-1){
fw.write(len);
fw.flush();
}
fw.close();
fr.close();
}
}
public static void main(String[] args) throws IOException {
//明确目的地
FileWriter fw=new FileWriter("D:\\io\\b\\demo01.txt");
//明确数据源
FileReader fr=new FileReader("D:\\io\\demo01.txt");
int len=0;
while((len=fr.read())!=-1){
fw.write(len);
fw.flush();
}
fw.close();
fr.close();
}
}
posted on 2020-04-21 16:14 煎饼果子不要果子谢谢 阅读(139) 评论(0) 编辑 收藏 举报