如果我正在从这个文件中正确阅读文本,我很好奇。
目的:从文件中读取文本并将其放入名为"行" (该集合是一个LinkedHashSet,因为我应该按照添加的顺序对元素进行排序)。
以下是main()函数的代码(省略了导入):
public class Main {
public static void main(String[] args) {
try {
Set<FileExaminer> examiners = new LinkedHashSet<>();
examiners.add(new FileExaminer("raven.txt"));
examiners.add(new FileExaminer("jabberwocky.txt"));
for (FileExaminer fe : examiners) {
System.out.println("-----------------------");
fe.display(45);
System.out.println();
fe.displayCharCountAlpha();
fe.displayCharCountNumericDescending();
}
}catch(FileNotFoundException e){
System.out.println(e.getMessage());
}
}
}
这是LinkedHashSet的创作:
private LinkedHashSet< String > lines = new LinkedHashSet<>();
以下是FileExaminer类中的代码:
public FileExaminer(String filename) throws FileNotFoundException {
File file = new File(file);
if(file.exists()){
Scanner reader = new Scanner(filename);
/** Read the contents of the file and place them into the lines set */
while( reader.hasNext() ){
lines.add( reader.next() );
} // end of while
reader.close();
} // end of if
else{
/** Throw exception if the file does not exist */
throw new FileNotFoundException("File not found: " + filename);
} // end of else
/** Call calculateCharCountAlpha */
calculateCharCountAlpha();
} // end of constructor
我遇到的问题是在程序的输出中。 当我从&#34;线打印出所需的线条时,#34;设置,我得到文件名,当我从其他方法打印出其他集中的项目时,它可以正常工作,但它正在分析文件名,而不是文件中的文本。 我不确定为什么会这样。
我已经在上一个问题中发布了displayCharCountAlpha的代码(它被发现可以正常工作),所以我不会包含它。
displayCharCountAlpha():
public void displayCharCountAlpha(){ // prints out charCountAlpha
System.out.println(charCountAlpha);
}
displayCharCountNumericDescending():
public void displayCharCountNumericDescending() { // prints out charCountNumericDescending
System.out.println(charCountNumericDescending);
}
显示():
public void display(int numberOfLines){
int count = 0; // control-variable that can be checked throughout iteration
for(String s : lines){
System.out.println(s);
count++;
if(count == numberOfLines-1){ // number of lines insinuates that the loop has the set amount of times
break; // break out of the loop
} // end of if
} // end of for
} // end of Display()
答案 0 :(得分:1)
简单的错误,
Scanner reader = new Scanner(filename);
应该是
Scanner reader = new Scanner(file);
目前,您已阅读String
filename
(并希望阅读File
file
)。
答案 1 :(得分:0)
问题是我正在阅读的文件,而不是我使用的算法。 似乎文本的格式是主要问题。 我把文件作为文件,使用程序将所有文本写入文件,再次使用相同的文件,它工作了! 奇怪的问题,但它是固定的。非常感谢所有帮助过的人!