網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > IT科技 > 

dataoutputstream亂碼

欄目: IT科技 / 發佈於: / 人氣:3.02W

dataoutputstream亂碼的原因:

Java執行環境(JRE)分英文版和國際版,只有國際版才支援非英文字元,如果電腦上裝的是英文版,Java開發工具包(JDK)就支援多國字元,但是如果沒有按裝JDK,直接用壓縮包就會出現亂碼。

注意:“ Java 原始碼-> Java 字節碼”,標準的 Java 編譯器 javac 使用的字元集是系統默認的字元集,比如在中文 Windows 操作系統上就是 GBK ,而在 Linux 操作系統上就是ISO-8859-1,所以開發人員在 Linux 操作系統上編譯的類中源檔案中的中文字元都出了問題,解決的辦法就是在編譯的時候添加 encoding 參數,這樣才能夠與平臺無關,用法是 javac –encoding GBK。

dataoutputstream亂碼

dataoutputstream亂碼的解決辦法:

使用FileOutputStream序列化可以直接向檔案寫入文字內容,代碼如下:

FileOutputStream outStream = new FileOutputStream(file);

outStream.write(str.getBytes());

outStream.close();

但這裏的字元串如果包含中文,就會出現亂碼,這是因爲FileOutputStream是字節流,將文字按字節寫入檔案,而一個漢字是兩個字節,無法一次寫入,就會出現亂碼,解決方法是使用OutputStreamWriter將字節流轉換爲字元流寫入,同時指定utf-8編碼。代碼如下:

OutputStreamWriter oStreamWriter = new OutputStreamWriter(new FileOutputStream(file), "utf-8");

oStreamWriter.append(str);

oStreamWriter.close();

dataoutputstream亂碼 第2張

拓展資料:

Java

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++裏難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作爲靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。

Java具有簡單性、面向對象、分佈式、健壯性、安全性、平臺獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分佈式系統和嵌入式系統應用程序等。