制作程序从文件夹中检索.txt文件。每个.txt文件包含1或2行单词。我从文件夹中获取.txt文件的每个文件名的输出:
Donatello
Galileo
Leonardo
Michael
Rafael
离。我到目前为止的代码:
import java.io.*;
import java.util.*;
public class Liarliar {
public static void main(String args[])throws IOException{
File listofnames = new File("C:\\List of names");
File[] names = listofnames.listFiles();
for(File person : names){
int index = person.getName().lastIndexOf(".");
if(index>0&& index <= person.getName().length()-2){
System.out.println(person.getName().substring(0, index));
}
}
}
}
这都是文件名,但这不是我想要的输出。我想要的输出是:
Donatello 2
Hi
Hello
Galileo 2
Fine
Thanks
Leonardo 1
Hi
Michael 1
Hello
Rafael 1
Hi
说明:上面给出的示例输出,例如: Donatello 2,空格后的数字2和名称Donatello,2对应于文件名Donatello.txt中的单词数。 2因为有2行单词。我希望你明白我的观点。
非常感谢任何帮助。谢谢......
答案 0 :(得分:0)
我建议你将代码分解为方法。例如,编写一个以File
为参数的方法,并返回该文件中的行数:
public int countLines(File f) {
...
}
然后,采用File
并将其内容写入System.out
的方法:
public void writeContents(File f) {
...
}
采用File
并返回其名称的方法:
public String getName(File f) {
...
}
现在,您可以使用这三个函数和一些粘合代码来编写程序:
public void processFiles(File[] files) {
for (File file : files) {
// Print info for this file using the three functions above
...
}
}
这通常是一种很好的编程方式。如果问题很难,那么试着把它分成更小的块。
希望有所帮助。
答案 1 :(得分:0)
最后,我明白了你的观点。 Donatello(文件名)2(包含行号) 你好 你好 (以上两行是Donatello.txt中的内容,对吧?
解决方案:
如果文件大小最多为两行,您可以生成一个新类来满足您的要求:
class FileInfo {
String fileName;
int lineNum;
String[] content;
}
然后逐行读取文件以填充FileInfo的信息。最后,打印出您需要的所有信息。
希望这有帮助。