❶ java如何向一個文件輸入中文,讀取中文。。能行嗎
import java.io.*;
public class test11 {
public static void main(String[] args) {
solve();
}
public static void solve()
{
File file = null;
FileWriter out = null;
FileReader in = null;
System.out.println("請輸入一行中文:");
String str = new java.util.Scanner(System.in).next();
char[] buf = new char[1024];
try
{
file = new File("D:/test.txt");
out = new FileWriter(file);
out.write(str);//寫出
out.close();
in = new FileReader(file);
buf = new char[(int)file.length()];
in.read(buf);
System.out.println(new String(buf));//列印出讀取的內容
}
catch (IOException e) {
e.printStackTrace();
}
finally
{
try
{
in.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
}
❷ java 文件一個一個位元組讀取(但內容有中文)
這是題目嗎?
一個漢字為兩個byte,你一個個讀出來轉碼是不行的。應該全部讀出來統一轉碼,拿到數據之後想怎麼輸出就怎麼輸出了。
下面是個例子,不太確定對不對,不過能給你一個參考。
string str = "";
while((n=bu.read(a))!=-1)
{
str += new String(a,o,n)
}
return new String(str.getBytes("UTF-8"),"UTF-8");
第一個"UTF-8",是讀取的文件的編碼方式,第二個是要轉成的編碼方式。
❸ java 讀txt中文亂碼
txt文檔一般是GBK編碼格式的,你可以將它另存一下,改為Utf-8格式,你也可以將你的開發工具調成GBK編碼格式,總之就是將你的開發環境的編碼格式與你要讀取的txt文件的編碼格式調成一致的。或者此處你可以使用java的轉換流,指定編碼格式去讀取txt文件,就是使用InputStreamReader(new FileInputStream(「filepath」),"GBK"),如果還是亂碼,你就再換編碼格式,不是UTF-8就是GBK
❹ 用java讀取txt文件中的中文寫入資料庫出現中文亂碼,怎麼解決
1,設置下你資料庫的編碼,一般設置成UTF-8或者GBK或者GB2312
2,java讀取TXT數據時可以轉換下編碼,再存進資料庫,從資料庫讀取出來後顯示時也同樣的轉換下編碼,好像可以用個過濾器來弄的,
❺ java,為什麼讀取文本文件裡面的漢字是亂碼啊,怎麼改啊
漢字的字元集不匹配,比如說用UTF-8字元集去解析GBK字元集的漢字就會變成亂碼
這里不要用FileReader,這個類用的是默認字元集去讀取文本,改用InputStreamReader,它的構造方法中能夠指定字元集,讓它作為BufferedReader的源,就不會亂碼了
hcl=new
BufferedReader(new
InputStreamReader(new
FileInputStream(wjlj
),
"GBK"));
如果還是亂碼,就把GBK改成UTF-8
❻ java中用RandomAccessFile,如何讀取文件中的中文
個人認為,此類和位元組流一樣,你只能從裡面得到位元組.你要操作字元流,可以用現成的Reader
以下是java文檔的解釋:
public final String readLine()
throws IOException
從此文件讀取文本的下一行。此方法可以從該文件的當前文件指針處成功地讀取位元組,直到到達行結束符或文件的末尾。每個位元組都轉換為一個字元,方法是採用該字元的低八位位元組值,並將該字元的高八位設置為零。因此,此方法不支持完整的 Unicode 字元集。
文本行由回車字元 ('\r') 和一個新行字元 ('\n') 結束,回車字元後面緊跟一個新行字元,或者是文件的末尾。不使用行結束符,並且在返回的字元串中不包括結束符。
在讀取了一個新行字元、讀取了一個回車符和它後面的位元組(查看是否為一個新行),到達文件的末尾或者拋出異常之前,此方法一直阻塞。
❼ JAVA讀寫文件,如何避免中文亂碼
1、你要將所有的文件的編碼都設置成UTF-8,還有,你的MyEclipse或者Eclipse應該配置jsp還有java文件還有項目都設置為UTF-8.
2、eclipse 中使用模板新建 JSP,xhtml等 文件時,默認的編碼為:ISO-8859-1。 ISO-8859-1 編碼對於中文的顯示是不支持的,如果要支持簡體中文,則編碼方式應為 GBK 或者 GB2312 或者 UTF-8(推薦) 等。右鍵菜單欄window --> preferences --> 在type filter text中輸入jsp; --> 選擇下面的jsp -> 選擇creating files組中的encoding 為UTF-8編碼就可以了
如果要使新建立工程、java文件直接使UTF-8則需要做以下工作:
1、windows->Preferences...打開"首選項"對話框,左側導航樹,導航到general->Workspace,右側 Text file encoding,選擇Other,改變為UTF-8,以後新建立工程其屬性對話框中的Text file encoding即為UTF-8。
2、windows->Preferences...打開"首選項"對話框,左側導航樹,導航到general->Content Types,右側Context Types樹,點開Text,選擇Java Source File,在下面的Default encoding輸入框中輸入UTF-8,點Update,則設置Java文件編碼為UTF-8。其他java應用開發相關的文件 如:properties、XML等已經由Eclipse預設指定,分別為ISO8859-1,UTF-8,如開發中確需改變編碼格式則可以在此指定。
❽ 用java直接讀取zip類型的文件時中文亂碼問題怎麼解決
1.一般是軟體程序解碼錯誤。如瀏覽器把GBK碼當成是Big5碼顯示,或電子郵件程序把對方傳來的郵件錯誤解碼。如果在發送時編碼錯誤,收件者的電郵程序是不能解碼的,需要寄件者的電郵程序重新編碼再寄。
2.字體檔案(font file)不對。
3.來源編碼錯誤,或文件受到破壞。
4.一種語言版本的操作系統安裝了另外一種語言版本的應用程序,或者應用程序安裝的升級補丁的語言版本與應用程序原來安裝的語言版本不一致。
5.早期單位元組的應用程序在打開雙位元組語言的文件時不能正確識別文字的分割,在換行的地方把一個字從中分成兩段,導致緊接在後面的整個一行全部都是亂碼。
6.低版本的應用程序不能識別高版本的程序創建的文件。
7.由於TXD等修改文件出現內部沖突,一些修改游戲的MOD(modification)CLEO、IV補丁、真實補丁、技能補丁、升級補丁和CCI人物補丁等游戲修改軟體的「Readme」「必看!」等閱讀文件會出現亂碼。
❾ 如何解決Java IO讀取文件中文亂碼問題
/** * 讀取文件內容 * * @param filePathAndName String 讀取文件路徑 * @return String 文件中的內容 */ 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寫入文件,避免中文亂碼。 /** * 寫文件 * * @param filePathAndName String 寫文件路徑 * @param fileContent String 需要寫入的內容 */ 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(); } }