Javaコード読み書きファイルの指定


1.ファイルを読む
データの移植性のためにデータベースの使用を断念し、すべてのデータをUTF-8符号化文として保存した.
このファイルは.netでこのようなファイルの秩序を読み取ってファイルを開く符号化の方式を指定するのでさえすれば、中国語の問題はすぐできます
避けるために.しかし、私の以前の考えでは、javaではそうではありません.javaでは先に読んでから変換しています.
の、最后の结果は私が间违っていることを证明して、见たところ経験の考えは人を杀します.
File f=new File((new 
BoxConfig()).getBaseDir()+"Data\\"+request.getParameter("ID")+".inc");
BufferedReader reader = new BufferedReader(new FileReader(f));
String line;
while((line=reader.readLine())!=null){
strContent+=line;
}
これは私の最初のコードfが私が読むUTF-8形式のテキストファイルで、この日に何度も経ったことがありません.
new String(strContent.getBytes(「UTF-8」)を含む試み(N種類の符号化回転を試みた
代わりに、System.setProperty(「file.encoding」、「UTF-8」)(N種類の符号化変換が指定されている)
)、すべて失敗しました.やっとGoogleで数回の検索で重要なことが証明された1つを手に入れた.
情報「ファイルを読み込むときに文字コードを指定する」ということで、夢の中の人を目覚めさせます..netではそう実現しているのではないでしょうか.
回り道をしてやっとこの問題を解決した.
File f = new File("E:\\eclipse\\workspace\\box\\Data\\2003-3-7-100.inc");
InputStreamReader read = new InputStreamReader (new FileInputStream(f),"UTF-8");
BufferedReader reader=new BufferedReader(read);
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
ファイルを開くことでファイルの符号化を指定する方法で、この問題を簡単に解決しました.
最後にまとめます:javaがデータストリームを読み込むときは必ずデータストリームの符号化方式を指定します(少なくとも読み出す
String流の時はそうします.
2.書類を書く
File file = new File("c:\a.test");
Writer writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
writer.write(「中国語テスト」);
writer.close();