我有一个扫描仪类将文件读入字符串.具有此字符"®"的任何文件都会导致其失败.我是Java的新手,是否有更好的方法来读取此文件以便接受该字符?
public void readFile(String fileName)
{
fileText = "";
try
{
Scanner file = new Scanner(new File(fileName));
while (file.hasNextLine())
{
String line = file.nextLine();
fileText += line +"\r"+"\n";
}
file.close();
}
catch (Exception e)
{
System.out.println(e);
}
}
Run Code Online (Sandbox Code Playgroud)
Ada*_*dam 17
默认情况下,Scanner使用平台默认字符编码,这可能与文件的字符编码不匹配.JavaDoc声明:
构造一个新的Scanner,它生成从指定文件扫描的值.使用底层平台的默认字符集将文件中的字节转换为字符.
首先确定文件的字符编码,这可以使用Linux命令行实用程序完成file -i.将正确的编码传递给扫描仪.对于一些众所周知的字符集,Java 7在java.nio.charset.StandardCharsets中包含预定义的常量.
Scanner file = new Scanner(new File(fileName), StandardCharsets.UTF_8);
Run Code Online (Sandbox Code Playgroud)
Jer*_*eph 10
创建扫描仪时提及编码.
Scanner file= new Scanner(new File(fileName), "utf-8");
| 归档时间: |
|
| 查看次数: |
1503 次 |
| 最近记录: |