我对java很新,我正在为自己做一个小项目。我的代码目前将我的'blah'目录中的所有文件列出到控制台。我想要在新行上列出带有数字的文件,当您输入数字(带扫描仪?)时,它会显示该文件的内容。我猜我需要一个数组或什么?
这是我的代码:
public static void main(String[] args) {
File folder = new File("C:\\Users\\Administrator\\Documents\\blah");
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
System.out.println("File " + listOfFiles[i].getName());
} else if (listOfFiles[i].isDirectory()) {
System.out.println("Directory " + listOfFiles[i].getName());
}
}
}
希望你能提供帮助:)
答案 0 :(得分:0)
我会建议:
显示您的int i代码:
System.out.println(i +“ - File”+ listOfFiles [i] .getName());
等待用户输入内容
number < listOfFiles.length
并且所选位置包含以'.txt'结尾的文件,则显示文件类似的东西:
public static void main(String[] args) {
File folder = new File("C:\\Users\\Administrator\\Documents\\blah");
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
System.out.println(i + " - File " + listOfFiles[i].getName());
} else if (listOfFiles[i].isDirectory()) {
System.out.println(i + " - Directory " + listOfFiles[i].getName());
}
}
System.out.println("Enter a number : ");
Scanner scanner = new Scanner(System.in);
BufferedReader buffer = null;
try {
String text = scanner.next();
int number = Integer.parseInt(text);
if (number < listOfFiles.length && listOfFiles[number].isFile() && listOfFiles[number].getName().endsWith(".txt")) {
FileReader fileReader = new FileReader(listOfFiles[number]);
buffer = new BufferedReader(fileReader);
String line = null;
while ((line = buffer.readLine()) != null) {
System.out.println(line);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
scanner.close();
if (buffer != null) {
try {
buffer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}