上一节我们讲解了字符输入流字符输出流
InputStreamReader(InputStream inputstream)
InputStreamReader(InputStream inputstream , String charSetName)
OutputStreamWriter(OutputStream outputstream)
OutputStreamWriter(OutputStream outputstream , String charSetName )
使用这两个方法里面的参数是字节输入输出流 所以我们还要创建字节输入输出流对象
FileInputStream FileOutputStream
使用字符输入输出流结合字节输入输出流
主要是因为他们可以实现自定义的一个编码格式 就是自己可以选择使用 gbk utf-8 或者其他的编码解码格式
方法
自定义编码格式
InputStreamReader(InputStream inputstream , String charSetName)
自定义解码格式
OutputStreamWriter(OutputStream outputstream , String charSetName )
但是现在我们一般都使用系统自己默认的编码个解码格式 就没有必要那么麻烦
所以系统提供了更加简单的类
FileReader(String fileName)
FileWriter (String fileName)
实现读取/写入字符文件
但是当我们需要设置编码解码格式的时候还是要使用上面的 InputStreamReader OutputStreamWriter
代码
/*
使用
FileReader(String fileName)
FileWriter (String fileName)
复制a.tx文件到copy2a.txt
*/
public static void main(String[] args) throws IOException {
//创建read对象
FileReader fr = new FileReader("C:\\Users\\Administrator\\IdeaProjects\\Day07\\a.txt");
//创建writer对象
FileWriter fw = new FileWriter("C:\\Users\\Administrator\\IdeaProjects\\Day07\\copy2a.txt");
//一个字符一个字符的读取复制数据
/*
int data ;
while ((data = fr.read()) != -1){
fw.write((char) data);
}
*/
//一个字符数组一个字符数组的读取复制文件
int len ;
char chars[] = new char[1024];
while ((len = fr.read(chars)) != -1){
//开始写入数据
fw.write(chars , 0 , len);
}
//释放资源
fr.close();
fw.close();
}