Java使用Scanner读取含有中文字符串文件报错解决方法
前言
昨天,小编在做Java读取文件时报错,具体报错如下,原本以为只要在同一个文件夹下面就可以了,但是Java总是报错 找不到指定的文件。
代码如下:
wenti3.java
package Wenti2;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class wenti3 {
public static void main(String[] args) throws FileNotFoundException {
File file=new File("a.txt");
Scanner scanner=new Scanner(file);
int n=scanner.nextInt();
String str=scanner.next();
System.out.println(n+" "+str);
}
}
文件结构如下:
小编试了很久,终于有了以下两种解决方法,
(1)换成绝对路径
(2)换成如下路径:(根据自己的文件结构)
此时,再查看运行结果如下:(如果此时有运行结果,可以不看这个过程了)
可以发现,不是找不到指定的文件了,而是另外一种错误,小编想了很久,不知道为什么还报错!
使用记事本查看一下这个文件好像没有问题啊!
但是,用NotePad++打开后发现,这不是 utf-8 编码
我们选择编码 按钮下面的转为utf-8编码,保存后,再运行上述程序,可以发现,此时,运行不报错了。
注意:一般报这种错误都是编码问题造成的。