我有这个方法:
public static void readFile(String input)
throws FileNotFoundException, IOException{
try (Scanner sc = new Scanner(new File(input));){
while (sc.hasNextLine()){
String currentLine = sc.nextLine();
if(sc.hasNextLine()){
String nextLine = sc.nextLine();
System.out.println("currentLine\t"+currentLine);
System.out.println("nextLine\t"+nextLine);
}
}
}
}
它正常工作,没有任何错误或任何问题,但这不会写入文件中的任何内容。在文件中我有一些基本的“lorem ipsum”文本,只是为了看看它是如何工作的。 如果在文件中只有拉丁字符,那么这是正常的,但如果有任何其他字符(例如:áéűőúüöó),那么这不会写入文件中的任何内容。我在哪里可以遇到这个问题?我该如何解决这个问题?
答案 0 :(得分:1)
你可能只有一行,而且错误就在这里:
while (sc.hasNextLine()){
String currentLine = sc.nextLine();
if(sc.hasNextLine()){
您获得当前行但仅在下一行时打印它。 这样就会丢失最后一行。
请删除IF条件。
编辑: 问题编辑后,请尝试为UTF8提供正确的编码:
new Scanner(new File(fileName), StandardCharsets.UTF_8.name());