文件IO流

时间:2023-12-27 13:25:01
//字节流读写含有中文的文本文件会出现问题,我在实践中居然没有检验出该问题,新人小菜,希望大家能指出:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter; public class Wenjian { public static void main(String[] args) throws IOException, InterruptedException {
// 字节流1个字节复制纯文本 可以加true
// FileInputStream fis = new FileInputStream("tt.txt");
// FileOutputStream fos = new FileOutputStream("C:\\Users\\issuser\\Desktop\\ttt.txt",true);
// int rr = 0;
// while((rr=fis.read())!=-1){
// fos.write(rr);
// }
// fis.close();
// fos.close(); // 字节流1个字节复制非纯文本 不能加true 在结尾加字节会导致,文件不断累加
// FileInputStream fis = new FileInputStream("美女1.jpg");
// FileOutputStream fos = new FileOutputStream("C:\\Users\\issuser\\Desktop\\meinv.jpg");
// int rr = 0;
// while((rr=fis.read())!=-1){
// fos.write(rr);
// }
// fis.close();
// fos.close(); //字节流多个个字节复制非纯文本 不能加true 在结尾加字节会导致,文件不断累加
// FileInputStream fis = new FileInputStream("美女1.jpg");
// FileOutputStream fos = new FileOutputStream("C:\\Users\\issuser\\Desktop\\meinv1.jpg");
// int rr = 0;
// byte[] arr = new byte[1024*8];
// while((rr=fis.read(arr))!=-1){
// fos.write(arr,0,rr);
// }
// fis.close();
// fos.close(); //字节流多个个字节复制非纯文本 不能加true 在结尾加字节会导致,文件不断累加 应该有读取中文问题
FileInputStream fis = new FileInputStream("checked.html");
FileOutputStream fos = new FileOutputStream("C:\\Users\\issuser\\Desktop\\xx.html");
int rr = 0;
byte[] arr = new byte[5];
while((rr=fis.read(arr))!=-1){
fos.write(arr,0,rr);
}
fis.close();
fos.close(); //字节流Buff复制非纯文本 不能加true 在结尾加字节会导致,文件不断累加
// BufferedInputStream bi = new BufferedInputStream(new FileInputStream("美女1.jpg"));
// BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream("C:\\Users\\issuser\\Desktop\\meinv1.jpg"));
// int rr = 0;
// while((rr=bi.read())!=-1){
// bo.write(rr);
// }
// bi.close();
// bo.close(); //字符流1个字符复制 可以加true
// FileReader fr = new FileReader("tt.txt");
// FileWriter fw = new FileWriter("C:\\Users\\issuser\\Desktop\\ttt.txt",true);
// int rr=0;
// while((rr=fr.read())!=-1){
// fw.write(rr);
// }
// fr.close();
// fw.close(); //字符流多个字符复制 可以加true
// FileReader fr = new FileReader("tt.txt");
// FileWriter fw = new FileWriter("C:\\Users\\issuser\\Desktop\\ttt.txt",true);
// int rr=0;
// char[] arr = new char[1024];
// while((rr=fr.read(arr))!=-1){
// fw.write(arr,0,rr);
// }
// fr.close();
// fw.close(); //字符流Buffer复制 可以加true
// BufferedReader br = new BufferedReader(new FileReader("tt.txt"));
// BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\Users\\issuser\\Desktop\\ttt.txt"));
//
// int rr = 0;
// while((rr=br.read())!=-1){
// bw.write(rr);
// }
// br.close();
// bw.close(); // 创建输入流
// FileReader fr = new FileReader("tt.txt");
// FileWriter fw = new FileWriter("C:\\Users\\issuser\\Desktop\\ttt.txt");
// // 带缓冲的字符流
// BufferedReader br = new BufferedReader(fr);
// BufferedWriter bw = new BufferedWriter(fw);
//
// String c;
// while ((c = br.readLine()) != null) { // 没有换行
// bw.write(c);
// // 添加新行
// bw.newLine(); // 跨平台
// // bw.write("\r\n"); // 只在Windows下有用
// }
//
// // 关闭流
// br.close();
// bw.close();
// } // // 创建LineNumberReader对象
// LineNumberReader lnr = new LineNumberReader(new FileReader("tt.txt"));
//
// // 设置当前行号
// lnr.setLineNumber(100);
//
// String line;
// while( (line = lnr.readLine()) != null ){
// // 获取当前行号
// System.out.println(lnr.getLineNumber() + ":" + line);
// }
//
// // 关闭流
// lnr.close();
InputStreamReader isr = new InputStreamReader(new FileInputStream("utf-8.txt"), "UTF-8");
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("gbk.txt"), "GBK"); }
}