那是你選中的文件內容字元編碼與jvm預設的文件編碼不一致,如unix下jvm預設文件編碼一般為iso8859-1,而回你的文件內容可能使用了GBK,可使用如下答代碼:
FileInputStream fis = new FileInputStream(Abs);
InputStreamReader isr = new InputStreamReader(fis, "GBK"); //GBK替換成你文件內容使用的編碼
BufferedReader br = new BufferedReader(isr);
Ⅱ java中把數據寫入到文件中出現亂碼是什麼原因
你的文本是二進制的,除了用dos.writeUTF("xxx")寫入的內容可以通過UTF-8編碼打開看到以外其他的都是不可見的字元,系統記事本是用GBK編碼打開的文本,所以會出現一些中文亂碼,可以用其他記事本軟體用UTF-8編碼打開,DataOutputStream 是 寫二進制的,要寫文本字元串可以用其他的
Ⅲ 怎樣用Java讀取TXT文本亂碼解決方案
這個方法很簡單,就是獲取txt文件中的一行數據,然後轉換為數組,我這個文本中只有一行。就這種情況下獲取到的str是亂碼,我想出現亂碼肯定是字元集編碼的問題,然後自己新建了一個文本文檔測試沒有問題(開始用的文本時別的程序導出的),所以我估計是開始那個txt文件編碼的問題,查看發現是Unicode編碼(如何查看txt的編碼呢,教你一個笨笨的辦法:打開文件——另存為,然後看到最下面的編碼,默認選擇的就是當前文檔的編碼格式),問題就出現在這里。問題找到了就好解決了,修改代碼為:
privateString[] getProjectData(File file){
String[] data =null;
try{
BufferedReader br =newBufferedReader(newInputStreamReader(newFileInputStream(file),"UTF-16"));
String str = br.readLine();
data = str.split(" ");
br.close();
}catch(FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
returndata;
}
使用文件流讀取,轉換編碼為「UTF-16」,這樣亂碼問題就解決了。
Ⅳ java讀取串口數據出現亂碼
編碼解碼不統一,最好都設置成utf-8 在windows里就能設置開發工具的編碼集
Ⅳ 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 讀取文件亂碼
這是因抄為兩你寫入文件時的編碼和讀取文件時的編碼方式不一致導致的。
你寫文件時,沒有指定字元編碼,但是你讀取文件內容時,指定了是以UTF-8編碼來讀取的。
讀寫文件編碼必須保持一致才能正確顯示。
你可以在讀取文件時,使用默認的編碼進行讀取:
InputStreamReader read = new InputStreamReader (new FileInputStream(file));
Ⅶ Java讀取二進制文件 亂碼 求大神幫忙
String marketID =new String(itemBuf,0,8);
改為
String marketID =new String(itemBuf,0,8,Charset.forName("UTF-8"));
其他行類似
如果你的二進制文件是其他編碼的,就用相應的編碼替換UTF-8