1. 程式人生 > >java io 讀取寫文件

java io 讀取寫文件

commons 亂碼 buffered file common code 原因 pri throws

java 讀取txt文件,漢字亂碼,原因是因為文件的編碼格式和程序編碼采用了不同的編碼格式。通常,假如自己不修改的話,windows自身采用的編碼格式是gbk(而gbk和gb2312基本上是一樣的編碼方式),程序中一般采用utf-8,所以讀取文件的時候最好指定編碼方式

方式1:以字節流讀寫

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Writer; import org.apache.commons.lang3.StringUtils; public class FileReadWriteDemo2 { public static void main(String[] args) throws IOException { BufferedReader read = new BufferedReader(new
InputStreamReader(new FileInputStream("f:/test.txt"),"gbk")); Writer out = new OutputStreamWriter(new FileOutputStream("f:/testNew.txt"),"gbk"); BufferedWriter writer =new BufferedWriter(out); String fileContent =""; String line = ""; while ((line = read.readLine()) != null
) { //刪除空格 if (StringUtils.isNotBlank(line)) { //System.out.println(line); fileContent +=line+"\r\n"; writer.write(line); writer.write("\r\n"); } } read.close(); writer.close(); System.out.println(fileContent); } }

方式2:以字符流讀寫

public class FileReadWriteDemo {

    public static void main(String[] args) throws IOException {
        BufferedReader read = new BufferedReader(new FileReader("f:\\test.txt"));

        BufferedWriter writer = new BufferedWriter(new FileWriter("f:/testNew.txt"));
        
        String line = "";
        while ((line = read.readLine()) != null) {
        
            if (StringUtils.isNotBlank(line)) {
                System.out.println(line);
                writer.write(line);
                writer.write("\n ");
            }
        }
        read.close();
        writer.close();
    }
}

java io 讀取寫文件