質問編集履歴
3
質問が分かりにくいため
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
-
ディレクトリの中身を探索するメソッドで実行した結果をファイルに入力したいのですが
|
3
|
+
ディレクトリの中身を探索するメソッドで実行した結果をファイルに入力したいのですがうまく作動しませんでした。
|
4
|
-
|
4
|
+
この時入力されたファイル(下のコードではoutputFile)の拡張子をファイル名ではなくコードの書き方で指定することは出来るのでしょうか。
|
5
|
+
下のコードは入力したい結果を表示するコードです。
|
6
|
+
(追記)
|
7
|
+
試したことにうまく作動しなかったコードを載せました。
|
5
8
|
|
6
9
|
### 該当のソースコード
|
7
10
|
|
@@ -93,7 +96,7 @@
|
|
93
96
|
|
94
97
|
|
95
98
|
### 試したこと
|
96
|
-
|
99
|
+
filewriterでは ("Directory: " + file.getName()) ような""と変数の組み合わせを出力することがうまく出来なかったのでPrintwriteに書き換え実行した結果下ではなく上に追加されてしまった。
|
97
100
|
|
98
101
|
```
|
99
102
|
import java.io.*;
|
2
詳しい説明の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -93,4 +93,104 @@
|
|
93
93
|
|
94
94
|
|
95
95
|
### 試したこと
|
96
|
-
ファイルへの書き込みの検索を行いfilewriterを調べたのですが""の文字と変数の組み合わせの書き込みが分からず、Printwriteを調べ、実行したのですがこれもうまく作動しなかった。
|
96
|
+
ファイルへの書き込みの検索を行いfilewriterを調べたのですが""の文字と変数の組み合わせの書き込みが分からず、Printwriteを調べ、実行したのですがこれもうまく作動しなかった。
|
97
|
+
|
98
|
+
```
|
99
|
+
import java.io.*;
|
100
|
+
import java.util.Scanner;
|
101
|
+
import java.io.FileWriter;
|
102
|
+
import java.io.File;
|
103
|
+
import java.io.PrintWriter;
|
104
|
+
import java.io.BufferedWriter;
|
105
|
+
|
106
|
+
public class Search{
|
107
|
+
|
108
|
+
static int max = 0;
|
109
|
+
static int now = -1;
|
110
|
+
static File[] tmp = new File[100];
|
111
|
+
public static void main(String[] args){
|
112
|
+
Scanner scan = new Scanner(System.in);
|
113
|
+
System.out.println("一覧を取得するディレクトリ名を入力してください。");
|
114
|
+
String searchFile = scan.nextLine();
|
115
|
+
|
116
|
+
System.out.println("出力ファイル名を入力してください。");
|
117
|
+
String outputFile = scan.nextLine();
|
118
|
+
|
119
|
+
dumpFile(new File(searchFile),outputFile);
|
120
|
+
}
|
121
|
+
|
122
|
+
//検索し値を表示
|
123
|
+
private static void dumpFile(File file, String output){
|
124
|
+
File outFile = new File(output);
|
125
|
+
|
126
|
+
try{
|
127
|
+
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(outFile,true)));
|
128
|
+
|
129
|
+
|
130
|
+
// ファイル一覧取得
|
131
|
+
File[] files = file.listFiles();
|
132
|
+
|
133
|
+
pw.println("Directory: " + file.getName());
|
134
|
+
|
135
|
+
//ディレクトリが空か判定
|
136
|
+
if(files.length == 0){
|
137
|
+
pw.println("空です");
|
138
|
+
}
|
139
|
+
|
140
|
+
//ディレクトリだった場合tmpに保存
|
141
|
+
for (File tmpFile : files) {
|
142
|
+
// ディレクトリの場合
|
143
|
+
if(tmpFile.isDirectory()){
|
144
|
+
tmp[max] = tmpFile;
|
145
|
+
//入手出来てるかの確認
|
146
|
+
pw.println(tmpFile.getName() + "はディレクトリです。");
|
147
|
+
max++;
|
148
|
+
|
149
|
+
// ファイルの場合
|
150
|
+
}else{
|
151
|
+
pw.println(tmpFile.getName() + "はファイルです。");
|
152
|
+
}
|
153
|
+
}
|
154
|
+
|
155
|
+
//見やすさのため
|
156
|
+
pw.println("");
|
157
|
+
|
158
|
+
//再帰
|
159
|
+
while(now != max-1){
|
160
|
+
now++;
|
161
|
+
dumpFile(tmp[now],output);
|
162
|
+
}
|
163
|
+
pw.close();
|
164
|
+
}catch(IOException e){
|
165
|
+
System.out.println(e);
|
166
|
+
}
|
167
|
+
}
|
168
|
+
}
|
169
|
+
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
```
|
174
|
+
|
175
|
+
###結果
|
176
|
+
```
|
177
|
+
Directory: D4
|
178
|
+
F3.txtはファイルです。
|
179
|
+
|
180
|
+
Directory: D3
|
181
|
+
空です
|
182
|
+
|
183
|
+
Directory: D2
|
184
|
+
D4はディレクトリです。
|
185
|
+
F2.txtはファイルです。
|
186
|
+
|
187
|
+
Directory: D1
|
188
|
+
D3はディレクトリです。
|
189
|
+
|
190
|
+
Directory: test
|
191
|
+
D1はディレクトリです。
|
192
|
+
D2はディレクトリです。
|
193
|
+
F1.txtはファイルです。
|
194
|
+
|
195
|
+
|
196
|
+
```
|
1
指摘の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -93,4 +93,4 @@
|
|
93
93
|
|
94
94
|
|
95
95
|
### 試したこと
|
96
|
-
ファイルへの書き込みの検索
|
96
|
+
ファイルへの書き込みの検索を行いfilewriterを調べたのですが""の文字と変数の組み合わせの書き込みが分からず、Printwriteを調べ、実行したのですがこれもうまく作動しなかった。
|