1. 程式人生 > >文件IO流

文件IO流

utf-8 緩沖 int lin 多個 reader throw new []

//字節流讀寫含有中文的文本文件會出現問題,我在實踐中居然沒有檢驗出該問題,新人小菜,希望大家能指出:

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"); } }

文件IO流