- ベストアンサー
ファイル出力について。
こんにちわ。 String型配列に格納した文字列5つを、それぞれ改行し、 ファイルに出力したいのですが、やり方がわかりません。 例: String[] test = new String{"a","b","c","d","e"}の場合 ↓test.txtの内容 --------- a b c d e --------- わかる方いらっしゃいましたら、ご教授願います。 宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No2です。 こういうことでよろしいですか? import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; public class test2 { public static void main(String[] args) { String[] test = { "a", "b", "c", "d", "e" }; try { File file = new File("C:\\test.txt"); Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF-8")); for (int i = 0; i < test.length; i++) { test[i] = test[i] + "\n"; out.write(test[i], 0, test[i].length()); } out.close(); } catch (IOException e) { System.out.println(e); } } }
その他の回答 (4)
- rinkun
- ベストアンサー率44% (706/1571)
文字エンコードを指定するにはava.io.OutputStreamWriterを使います。 java.io.Writer out = new java.io.BufferedWriter(new java.io.OutputStreamWriter(new java.io.FileOutputStream("filename"), "UTF-8")); といった感じでWriterを作成して書き込みます。
補足
回答ありがとうございます。 これで出力ファイルの文字コードの指定が出来そうです。。。 が、ストリームに書き込むのはどうしたらよいのでしょうか。 ファイルからではなく、string型の文字列を書き込みたいのです。 よろしくお願いします。
- tachiwa
- ベストアンサー率34% (25/73)
PrintWriterを使うとこうなります。 import java.io.*; class HelloWriter { public static void main(String args[]){ String[] test={"a","b","c","d","e"}; try{ PrintWriter writer= new PrintWriter(new BufferedWriter(new FileWriter("test.txt"))); for(int i=0;i<test.length;i++){ writer.println(test[i]); } writer.close(); } catch(IOException e){ System.out.println(e); } }
補足
回答ありがとうございます。 質問に書き忘れたのですが、String型の文字列はUTF-8で、 出力もUTF-8でファイルに書き込みをしたいと思っています。 そのため、PrintWriterクラスでは、文字コードの指定が 出来ませんでした。 他によい方法はないでしょうか。 宜しくお願いします。
- siina-k
- ベストアンサー率82% (14/17)
こんにちわ。 何処がわからないのでしょうか? 改行するやり方がわからないのであれば、"\n"をつければ、改行されますよ。 一応簡単にソースを作ってみましたので、ご参照ください。 import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; public class test2 { public static void main(String[] args) { String[] test = { "a", "b", "c", "d", "e" }; try { File file = new File("C:\\test.txt"); FileWriter filewriter = new FileWriter(file); BufferedWriter writer = new BufferedWriter(filewriter); for (int i = 0; i < test.length; i++) { test[i] = test[i] + "\n"; writer.write(test[i], 0, test[i].length()); } writer.close(); } catch (IOException e) { System.out.println(e); } } }
補足
回答ありがとうございます。 質問に書き忘れたのですが、String型の文字列はUTF-8で、 出力もUTF-8でファイルに書き込みをしたいと思っています。 そのため、PrintWriterクラスでは、文字コードの指定が 出来ませんでした。 他によい方法はないでしょうか。 宜しくお願いします。
- tom11
- ベストアンサー率53% (134/251)
こんにちは、 PrintWriterクラス を利用すると便利ですよ。 参考URLを参照してみてください。
補足
回答ありがとうございます。 質問に書き忘れたのですが、String型の文字列はUTF-8で、 出力もUTF-8でファイルに書き込みをしたいと思っています。 そのため、PrintWriterクラスでは、文字コードの指定が 出来ませんでした。 他によい方法はないでしょうか。 宜しくお願いします。
お礼
回答ありがとうございます。 そういうことです!!!! 説明が下手ですいませんでした。 実際のソースで確かめてみます。 ありがとうございました。