前提・実現したいこと
まず実現したいことは、適当なディレクトリに複数のテキストファイルがある状態でそれらの全ファイルを読み込む。そして、それぞれのファイルの内容を
・コンソールに表示する
・それぞれ別ファイルに出力する
ということです。
発生している問題・エラーメッセージ
ファイルに書き込む際、配列filesの要素を書き込んでいくと次々に上書きされてしまいます。
新しいファイルのパスが毎回同じだからだと思うのですが、どうすればfor文を繰り返すごとに書き込むファイルを変えることができますか?
該当のソースコード
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
try { File file = new File("読み込むファイルがあるディレクトリ"); File[] files = file.listFiles();//一覧で取得 String line; for(int i=0;i <=files.length;i++) { File newFile = new File("新しいファイルのパス"); newFile.createNewFile(); BufferedReader reader = new BufferedReader(new FileReader(files[i]));// PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(newFile)));// while(null != (line = reader.readLine())) { System.out.println(line); writer.println(line); } writer.close(); reader.close(); } }catch (FileNotFoundException e) { System.out.println(e); }catch (IOException e) { System.out.print(e); } }
試したこと
補足情報(FW/ツールのバージョンなど)
ファイルに出力する際、一つのファイルにまとめて出力するのではなく、それぞれ別のファイルに出力したいです。なおソースコードはimport文を除いています。
回答2件
あなたの回答
tips
プレビュー