teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

書式の改善

2020/06/16 10:08

投稿

tera-ryo
tera-ryo

スコア4

title CHANGED
File without changes
body CHANGED
@@ -1,11 +1,44 @@
1
+ ```java
2
+ public static void main(String[] args) {
1
- ### 前提・実現しいこと
3
+ // TODO 自動生成されメソッド・スタブ
2
4
 
5
+ try {
6
+ File file = new File("読み込むファイルがあるディレクトリ");
7
+ File[] files = file.listFiles();//一覧で取得
8
+
9
+ String line;
10
+
11
+ for(int i=0;i <=files.length;i++) {
12
+ File newFile = new File("新しいファイルのパス");
13
+ newFile.createNewFile();
14
+ BufferedReader reader = new BufferedReader(new FileReader(files[i]));//
15
+ PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(newFile)));//
16
+
17
+ while(null != (line = reader.readLine())) {
18
+ System.out.println(line);
19
+ writer.println(line);
20
+ }
21
+ writer.close();
22
+ reader.close();
23
+
24
+ }
25
+
26
+ }catch (FileNotFoundException e) {
27
+ System.out.println(e);
28
+ }catch (IOException e) {
29
+ System.out.print(e);
30
+ }
31
+ }
32
+
33
+ ```### 前提・実現したいこと
34
+
3
35
  まず、このプログラムは以下を実現するプログラムです。
4
36
  複数ファイルを読み込んで
5
- ・コンソールに表示する
37
+ ・コンソールに表示する(この部分はできました。)
6
38
  ・それぞれ別ファイルに書き込む(ファイルを3つ読み込んだら3つ新しいファイルができる)
7
39
  これを実行すると、for文で繰り返してファイルに書き込んでいくのですが、書き込むファイルのパスが毎回同じであるため上書きされていき、最後に書き込んだものしか残っていません。
8
40
  for文を繰り返すたびに新しく書き込むファイルのパスを変えるにはどうすればよいですか。
41
+
9
42
  ### 発生している問題・エラーメッセージ
10
43
 
11
44
  ```
@@ -14,10 +47,7 @@
14
47
 
15
48
  ### 該当のソースコード
16
49
 
17
- public static void main(String[] args) {
18
- // TODO 自動生成されたメソッド・スタブ
19
50
 
20
- try {
21
51
  File file = new File("読み込むファイルがあるディレクトリ");
22
52
  File[] files = file.listFiles();//一覧で取得
23
53
 
@@ -35,15 +65,8 @@
35
65
  }
36
66
  writer.close();
37
67
  reader.close();
38
-
39
68
  }
40
69
 
41
- }catch (FileNotFoundException e) {
42
- System.out.println(e);
43
- }catch (IOException e) {
44
- System.out.print(e);
45
- }
46
- }
47
70
 
48
71
  ### 試したこと
49
72