質問編集履歴

2

ソースコードの更新、発生している問題の変更

2020/06/15 17:00

投稿

tera-ryo
tera-ryo

スコア4

test CHANGED
File without changes
test CHANGED
@@ -96,7 +96,7 @@
96
96
 
97
97
 
98
98
 
99
- コンソールに表示させる部分はうまくいきました。あとは、while文の中にファイルに出力するものを入れたいです。
99
+
100
100
 
101
101
 
102
102
 
@@ -104,4 +104,4 @@
104
104
 
105
105
 
106
106
 
107
- ファイルに出力する際、一つのファイルにまとめて出力するのではなく、それぞれ別のファイルに出力したいです。また、なおソースコードはimport文を除いています。
107
+ ファイルに出力する際、一つのファイルにまとめて出力するのではなく、それぞれ別のファイルに出力したいです。なおソースコードはimport文を除いています。

1

ソースコードの更新、発生している問題の変更

2020/06/15 17:00

投稿

tera-ryo
tera-ryo

スコア4

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- まず実現したいは、適当なディレクトリに複数のテキストファイルがある状態でそれらの全ファイルを読み込む。そして、それぞれのファイルの内容を
5
+ まず実現したいことは、適当なディレクトリに複数のテキストファイルがある状態でそれらの全ファイルを読み込む。そして、それぞれのファイルの内容を
6
6
 
7
7
  ・コンソールに表示する
8
8
 
@@ -10,11 +10,15 @@
10
10
 
11
11
  ということです。
12
12
 
13
+
14
+
13
15
  ### 発生している問題・エラーメッセージ
14
16
 
17
+ ファイルに書き込む際、配列filesの要素を書き込んでいくと次々に上書きされてしまいます。
18
+
19
+ 新しいファイルのパスが毎回同じだからだと思うのですが、どうすればfor文を繰り返すごとに書き込むファイルを変えることができますか?
15
20
 
16
21
 
17
- 複数のファイルの内容を複数のファイルに出力する方法、アルゴリズムが分かりません。
18
22
 
19
23
 
20
24
 
@@ -22,59 +26,69 @@
22
26
 
23
27
 
24
28
 
25
- public static void main(String[] args) {
29
+ public static void main(String[] args) {
26
30
 
27
31
  // TODO 自動生成されたメソッド・スタブ
28
32
 
29
33
 
30
34
 
31
-
35
+ try {
32
36
 
33
- File file = new File("複数の読み込むファイルがあるディレクトリ");
37
+ File file = new File("読み込むファイルがあるディレクトリ");
34
38
 
35
-
39
+ File[] files = file.listFiles();//一覧で取得
36
40
 
37
-
38
41
 
39
- for(File f : file.listFiles()) {
40
42
 
41
- if(f.isDirectory()) {
43
+ String line;
42
44
 
43
- continue;
44
45
 
45
- }
46
46
 
47
- try(BufferedReader br = Files.newBufferedReader(f.toPath(),StandardCharsets.UTF_8)){
47
+ for(int i=0;i <=files.length;i++) {
48
48
 
49
- String ln;
49
+ File newFile = new File("新しいファイルのパス");
50
50
 
51
- while((ln = br.readLine()) != null) {
51
+ newFile.createNewFile();
52
52
 
53
+ BufferedReader reader = new BufferedReader(new FileReader(files[i]));//
54
+
55
+ PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(newFile)));//
56
+
57
+
58
+
59
+ while(null != (line = reader.readLine())) {
60
+
53
- System.out.println(ln);
61
+ System.out.println(line);
62
+
63
+ writer.println(line);
64
+
65
+ }
66
+
67
+ writer.close();
68
+
69
+ reader.close();
70
+
71
+
54
72
 
55
73
 
56
74
 
57
-
75
+ }
58
76
 
59
- //この中にファイルに出力するコマンドも書きたい
60
77
 
61
- }
62
78
 
79
+
80
+
63
-
81
+ }catch (FileNotFoundException e) {
82
+
83
+ System.out.println(e);
64
84
 
65
85
  }catch (IOException e) {
66
86
 
67
- e.printStackTrace();
87
+ System.out.print(e);
68
88
 
69
89
  }
70
90
 
71
-
72
-
73
- }
91
+ }
74
-
75
-
76
-
77
-
78
92
 
79
93
 
80
94