⑴ java中輸入輸出中文亂碼,怎麼辦
解決辦法:
1.在代碼區域右鍵 -> run as -> run configurations -> common(右側) -> console encoding
如果出現此錯誤,此時的編碼格式應該是UTF-8,選擇Other,這時可能沒有GBK選項,如果沒有,則執行之後操作。
2.更改該項目的文本文件編碼,項目右鍵 -> properties -> resource -> 先將 text file encoding調整回GBK,然後再回去重新設置console encoding編碼為GBK。
⑵ Java IO讀取txt文件亂碼。前提不知道文檔是什麼編碼格式
1首先獲得一個文件句柄。File file = new File(); file即為文件句柄。兩人之間連通電話網路了。接下來可以開始打電話了。
2通過這條線路讀取甲方的信息:new FileInputStream(file) 目前這個信息已經讀進來內存當中了。接下來需要解讀成乙方可以理解的東西
3既然你使用了FileInputStream()。那麼對應的需要使用InputStreamReader()這個方法進行解讀剛才裝進來內存當中的數據
4解讀完成後要輸出呀。那當然要轉換成IO可以識別的數據呀。那就需要調用位元組碼讀取的方法BufferedReader()。同時使用bufferedReader()的readline()方法讀取txt文件中的每一行數據哈。
⑶ 為什麼java 用IO流讀docx文件里的內容列印在控制台是亂碼
肯定是亂碼啊...那是因為docx 裡面的東西其實進行過某些格式整合到一起的文件 你可以把一個word文件的後綴改成zip 解壓縮打開看一下就知道...
java讀取docx裡面的東西 可以使用 poi ,具體怎麼做可以在網上搜一下
⑷ 在Java的io流中為什麼我向TXT文件輸出整形數據,結果出現亂碼
因為每一種文件都有它自己的編碼方式,window默認是GBK編碼會出現亂 用一下轉換流例如:
轉換流在構造時可以制定其編碼集合,例如:
InputStream isr = new InputStreamReader
(System.in, 「GBK」)
改下編碼方式。
⑸ 關於Java問題
二進制寫入?聽誰說的?
IO的話就位元組流和字元流兩種方式
這里就是將byte類型的數組元素以位元組流的方式寫入test.txt文件里,數組中的元素對應ASCII碼
然後再通過位元組流的方式讀取
至於讀取會出現亂碼是因為
在ASCII碼表中,前32個字元是不能用於列印的編碼,而是用於控制像列印機一樣的外圍設備。所以列印出來看起來這樣的亂碼
如果是讀取佔用一個位元組的字元顯示的話問題不是太大。
但如果涉及到中文(等需要多個位元組表示的字元)使用位元組流讀取顯示就會有亂碼的問題
例如 「中」 假定一個中文佔用2個位元組的話
位元組流一個位元組一個位元組的讀取,本來「中」是兩個位元組表示的,但位元組流讀一個顯示一個,就造成原本「中」這個字被分成兩半讀取,顯示出來的肯定就不對咯
⑹ java.io.EOFException怎麼解決,同時文件怎麼顯示亂碼
錯誤修正:
/*
* 數據的讀取
*/
public void load(File file) {
// 文件輸入流
FileInputStream inputStream;
DataInputStream input = null;
try {
inputStream = new FileInputStream(file);
// 數據輸入流
input = new DataInputStream(inputStream);
// 讀出
String tempname;
int temptime;
while (input.available() > 0 && (tempname = (String) input.readUTF()) != null) {
temptime = (int) input.readInt();
insert(tempname, temptime);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
⑺ java.io 寫入之後,打開txt 數字亂碼成acsii碼
這是正常的,writeInt寫數據底層使用的是位操作你可以把它當做位元組讀寫方式,而acsii是字元讀寫的方式。所以你看data.txt會有亂碼。就比如35 acsii看作是字元『3』和字元『5』,而使用writeInt就是各種移位操作最後是一個32位二進制int.望採納
⑻ java 中io 我用為什麼亂碼
FileReader是讀字元流的,你用fr.getEncoding()看看,編碼格式應該不是GBK的!但又沒有設置編碼的方法,你可以用InputStreamReader來實現,
InputStreamReader in=new InputStreamReader(new FileInputStream("d:\\學習\\素材\\myT.txt"),"GBK");這樣就把編碼高為GBK,再輸出就不會有亂碼了吧!