dataoutputstream亂碼的解決方法:1、透過「dos.write("...".getBytes());」方式寫入String;2、設(shè)定「new OutputStreamWriter(new FileOutputStream(file), "utf-8");」即可。
本教學(xué)操作環(huán)境:Windows10系統(tǒng)、Java8.0版、Dell G3電腦。
dataoutputstream亂碼怎麼辦?
解決DataOutputStream亂碼的問題
這個坑我就先踩為敬了,重要的話說三遍!
千萬不要用DataOutputStream的writeBytes 方法
#千萬不要用DataOutputStream的writeBytes 方法
#萬不要用DataOutputStream的writeBytes 方法
我們使用DataOutputStream 的時候,例如想寫入String ,你就會看到三個方法
public final void writeBytes(String s) public final void writeChars(String s) public final void writeUTF(String str)
OK ,那你試著去寫入相同的內(nèi)容後,再去讀取一下試試
File file = new File("d:"+File.separator+"test.txt"); DataOutputStream dos = new DataOutputStream(new FileOutputStream(file)); dos.writeBytes("你好"); dos.writeChars("你好"); dos.writeUTF("你好"); dos.flush(); dos.close(); DataInputStream dis = new DataInputStream(new FileInputStream(file)); byte[] b = new byte[2]; dis.read(b); // `} System.out.println(new String(b, 0, 2)); char[] c = new char[2]; for (int i = 0; i < 2; i++) { c[i] = dis.readChar(); } //你好 System.out.println(new String(c, 0, 2)); //你好 System.out.println(dis.readUTF());
#是的,你沒看錯,writeBytes方法寫入的內(nèi)容讀出來,為啥亂碼了?
點進去看看實現(xiàn)
public final void writeBytes(String s) throws IOException { int len = s.length(); for (int i = 0 ; i < len ; i++) { out.write((byte)s.charAt(i)); } incCount(len); }
大哥,這char類型被強轉(zhuǎn)為byte類型了,失精度了呀,怪不得回不來了,所以使用的時候千萬別貪方便,老實換成dos.write("你好".getBytes()); 都好的呀
DataOutputStream寫入txt檔案資料亂碼
#這是正常的,如果要讀,要用DataInputStream讀出,如果僅要保成文字檔案直接要FileOutputStream或PrintWriter
OutputStreamWriter oStreamWriter = new OutputStreamWriter(new FileOutputStream(file), "utf-8"); oStreamWriter.append(str); oStreamWriter.close();
主要是編碼方式不一樣
要用字符流而不是字節(jié)流
BufferedReader類從字符輸入流中讀取文本並緩衝字符,以便有效地讀取字符,數(shù)組和行
#推薦學(xué)習(xí): 《Java影片教學(xué)》
以上是dataoutputstream亂碼怎麼辦的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

word頁碼亂碼的解決方法:1、開啟word文檔,點選左上角的「文件」選項;2、選擇「更多」選項,再點選「選項」按鈕;3、在word選項中選擇「進階」;4 、在“顯示文件內(nèi)容”中找到“顯示域代碼而非域值”,去掉前方的勾選,並點擊確定,回到主頁即可。

Linux中文亂碼問題是使用中文字元集和編碼時常見的一個問題。出現(xiàn)亂碼的原因可能是檔案編碼設(shè)定不正確,系統(tǒng)語言環(huán)境未安裝或未設(shè)置,以及終端顯示設(shè)定錯誤等。本文將介紹幾種常見的解決方法,並提供具體的程式碼範(fàn)例。一、檢查檔案編碼設(shè)定使用file指令查看檔案編碼在終端機中使用file指令,可以檢視檔案的編碼:file-ifilename如果輸出中有"charset

tomcat啟動亂碼的解決方法:1、修改Tomcat的conf設(shè)定檔;2、修改系統(tǒng)語言;3、修改命令列視窗編碼;4、檢查Tomcat伺服器設(shè)定;5、檢查項目編碼;6、檢查日誌檔;7 、嘗試其他解決方案。詳細介紹:1、修改Tomcat的conf設(shè)定文件,開啟Tomcat的conf目錄,找到"logging.properties"檔案等等。

在Windows10系統(tǒng)中,出現(xiàn)亂碼現(xiàn)象可謂司空見慣。這背後的原因往往在於該作業(yè)系統(tǒng)並未對部分字元集提供預(yù)設(shè)的支持,抑或是設(shè)定的字元集選項有錯誤。為了對癥下藥,以下我們將為您詳細解析實際的操作規(guī)程。 windows10亂碼怎麼解決1、開啟設(shè)置,找到「時間和語言」2、再找到「語言」3、找到「管理語言設(shè)定」4、點選這裡的「更改系統(tǒng)區(qū)域設(shè)定」5、如圖勾選上然後點擊確定就可以了。

有很多的用戶在使用電腦的時候,會發(fā)現(xiàn)有很多的文件的尾綴是dll,但是很多的用戶們都不知道這種文件需要怎麼打開,想要知道的用戶們快來看看以下詳細教程吧~dll檔案怎麼打開編輯:1、下載一個??叫做「exescope」的軟體,並下載安裝。 2、然後右鍵dll文件,選擇「用exescope編輯資源」。 3、然後在彈出的錯誤提示框中,點選「確定」。 4、然後在右邊的面板上,點擊每個組前面的「+」號可以查看到它所包含的內(nèi)容。 5.點選需要檢視的dll文件,就能夠看到了,然後點選“文件”,選擇“匯出”。 6、然後就能夠

有些朋友想要打開一個記事本,發(fā)現(xiàn)自己的win11記事本亂碼,不知道怎麼辦,其實我們一般只需要修改區(qū)域和語言就可以了。 win11記事本亂碼:第一步,使用搜尋功能,搜尋並開啟「控制臺」第二步,點擊時鐘和區(qū)域下的「更改日期、時間或數(shù)字格式」第三步,點擊上方的「管理」選項卡。第四步,點選下方「變更系統(tǒng)區(qū)域設(shè)定」第五步,將目前系統(tǒng)區(qū)域設(shè)定改為「中文(簡體,中國)」並「確定」儲存即可。

filezilla亂碼的解決方法有:1、檢查編碼設(shè)定;2、檢查檔案本身;3、檢查伺服器設(shè)定;4、嘗試其他傳輸工具;5、更新軟體版本;6、檢查網(wǎng)路問題;7、尋求技術(shù)支援。解決FileZilla亂碼問題需要從多個方面入手,逐步排除問題原因,並採取相應(yīng)的措施進行修復(fù)。

linux tty中文亂碼的解決方法:1、透過「sudo apt-get install fbterm」指令下載字型fbterm;2、執(zhí)行「sudo fbterm」指令;3、變更字型和字型大小為「font-names=Ubuntu Mono font- size=14”即可。
