java io 讀取寫文件
阿新 • • 發佈:2017-11-02
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(newInputStreamReader(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 讀取寫文件