『壹』 java用BufferedReader讀取文件中時總是亂碼
@Test
publicvoidFileInput()throwsIOException{
Filef=newFile("io.txt");
FileInputStreamfip=newFileInputStream(f);
//構建InputStreamReader對象,編碼與寫入相同
InputStreamReaderreader=newInputStreamReader(fip,"UTF-8");
StringBufferstringBuffer=newStringBuffer();
while(reader.ready()){
//轉成內char加到StringBuffer對象中容
stringBuffer.append((char)reader.read());
}
System.out.println(stringBuffer.toString());
reader.close();
fip.close();
}
『貳』 JAVA讀寫文件,如何避免中文亂碼
最近在做HTML靜態生成,需要從硬碟上把模版文件的內容讀出來。然後,替換相關標簽寫到指定的文件中。無論是讀寫,都遇到了中文亂碼問題。試過多種方法,發現下面一種可以避免中文亂碼。(無論讀取還是寫入一定要進行編碼轉換。)
1、JAVA讀取文件,避免中文亂碼。
/**
* 讀取文件內容
*
* @param filePathAndName
* String 如 c:\\1.txt 絕對路徑
* @return boolean
*/
public static String readFile(String filePathAndName) {
String fileContent = "";
try {
File f = new File(filePathAndName);
if(f.isFile()&&f.exists()){
InputStreamReader read = new InputStreamReader(new FileInputStream(f),"UTF-8");
BufferedReader reader=new BufferedReader(read);
String line;
while ((line = reader.readLine()) != null) {
fileContent += line;
}
read.close();
}
} catch (Exception e) {
System.out.println("讀取文件內容操作出錯");
e.printStackTrace();
}
return fileContent;
}
2、JAVA寫入文件,避免中文亂碼。
public static void writeFile(String filePathAndName, String fileContent) {
try {
File f = new File(filePathAndName);
if (!f.exists()) {
f.createNewFile();
}
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f),"UTF-8");
BufferedWriter writer=new BufferedWriter(write);
//PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filePathAndName)));
//PrintWriter writer = new PrintWriter(new FileWriter(filePathAndName));
writer.write(fileContent);
writer.close();
} catch (Exception e) {
System.out.println("寫文件內容操作出錯");
e.printStackTrace();
}
}
我試過寫入的時候用
1、PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filePathAndName)));
2、PrintWriter writer = new PrintWriter(new FileWriter(filePathAndName));
都不行。
以上代碼經過運行可以避免中文亂碼,關鍵是要編碼轉換。
『叄』 csv 文件打開亂碼,有哪些方法可以解決
新建一個空文件,然後菜單里選 文件->導入,選擇csv文件,然後選擇編碼UTF-8 或 GB18030(一般中文都是這兩種格式,如果不行就再試試其他選項),這時界面上會預覽導入內容
『肆』 java 用FileInputStream中read方法讀取文件出現亂碼
read方法讀取復的是位元組流(制每次讀取一個位元組),如果是中文,就是兩個位元組,就會出現亂碼的。
可以通過BufferedReader 流的形式進行流緩存,之後通過readLine方法獲取到緩存的內容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此時獲取到的bre就是整個文件的緩存流
while ((str = bre.readLine())!= null) // 判斷最後一行不存在,為空結束循環
{
System.out.println(str);//原樣輸出讀到的內容
};
備註: 流用完之後必須close掉,如上面的就應該是:bre.close(),否則bre流會一直存在,直到程序運行結束。
『伍』 java導出 ,CSV格式文件,中文顯示成問號,怎麼解決
要加上UTF-8 BOM頭,不然在windows下打開會亂碼.
『陸』 java讀取csv文件出現亂碼怎麼辦
這種文件說白了就是 數據用,分隔符隔開。
出現亂碼估計是你文檔字元格式的問題。你轉成utf-8就不會出錯了。
『柒』 java生成 csv excel 亂碼怎麼辦
准備一個有亂碼的CSV文件用於演示,如圖。
首先我們右鍵此CSV文件,選擇「用記事本打開」
打開後,點擊「文件」--「另存為」。
我們發現默認編碼是「UTF-8」,所以一些Excel表格軟體就會顯示亂碼。對於這樣,我們只要改成ANSI就行了,按確定。
5
用Excel表格軟體再打開,就不會顯示亂碼了。
『捌』 java讀取文件亂碼
那是你選中的文件內容字元編碼與jvm預設的文件編碼不一致,如unix下jvm預設文件編碼一般為iso8859-1,而回你的文件內容可能使用了GBK,可使用如下答代碼:
FileInputStream fis = new FileInputStream(Abs);
InputStreamReader isr = new InputStreamReader(fis, "GBK"); //GBK替換成你文件內容使用的編碼
BufferedReader br = new BufferedReader(isr);