[英]Why does my java.util.Scanner not read my File?
我的扫描仪不读取由 BufferedReader 读取的现有文件,但 BufferedReaders 不支持我的文件需要的 UTF-8 编码。
我已经使用了 BufferedReader(即使使用 UTF-8,它没有给我像“ä”(德语字母)这样的字母,而是给了我尴尬的问号符号)。 我当然已经使用过扫描仪。
public ArrayList<String> getThemefile2() {
Scanner s;
try {
s = new Scanner(themefile);
} catch (FileNotFoundException e) {
e.printStackTrace();
return new ArrayList<>();
}
ArrayList<String> list = new ArrayList<>();
while (s.hasNextLine()) {
list.add(s.nextLine());
}
s.close();
return list;
}
它只返回一个空的 ArrayList,但不会触发 FileNotFoundException。 主题文件是一个现有的文件。
您需要为文件指定编码,如果它不是您的系统默认值。 在您的情况下,这将是您创建Scanner
。
s = new Scanner(themefile, "UTF-8");
没有要查看的文件,我们都只是在猜测问题所在。
这是一个猜测:没有下一行,因此 while 循环立即中断,您得到一个空的数组列表。 如果文本文件中根本没有换行符,就会出现这种情况。
我在 api 28 级别上遇到了同样的问题。 这对我有用:
s = new Scanner(new FileReader(themefile));
并且必须导入:
import java.io.FileReader;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.