【发布时间】:2019-01-07 22:14:58
【问题描述】:
我的扫描仪不读取由 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。主题文件是一个现有的文件。
【问题讨论】:
-
您是否调试/添加了打印语句以查看代码发生了什么?是否进入了while循环?
-
BufferedReader当然支持 UTF-8 文本。 -
当然没有进入while循环,因为返回的ArrayList的大小为0
-
在您的 catch 块中,您还返回一个空的
List。你确定没有打印错误信息吗? -
是的。根本没有错误信息
标签: java file java.util.scanner