Java Scanner 无法正常读取文件

Java Scanner 无法正常读取文件

问题

今天在测试程序时发现用Scanner读取文件时不能正常读取。代码如下:

Scanner scanner = new Scanner(sourceFile);
while (scanner.hasNext()) {
   String str1 = scanner.nextLine();

原因分析

通过查询源码,发现发MalformedInputException 就是整个问题的根本原因。以下是甲骨文官方文档对该异常的介绍:

Checked exception thrown when an input byte sequence is not legal for given charset, or an input character sequence is not a legal sixteen-bit Unicode sequence. ———————————————— 版权声明:本文为CSDN博主「David Chou」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/vandavidchou/article/details/112389613

解决方法

通过设置编码,可处理该问题。代码如下:

String enconding = "UTF-8";
Scanner scanner = new Scanner(sourceFile,enconding);
while (scanner.hasNext()) {
   String str1 = scanner.nextLine();

Java中没有标准的字符集,可以通过设置字符集UTF-8解决。

上一篇:Scnner对象


下一篇:Linux引导过程及引导修复(磁盘引导、grub引导、内核...)