工作中遇到的一个问题,需要读入文本文件并处理其中的字符。我先想当然想到了Scanner,用以下方法:
Scanner sca=Scanner(file);
while(sca.hasNextLine())
{
String line=sca.nextLine();
...
}
逐行读入字符,但发现什么都没读到,line是null,但原文件中的确是有文本的。因为我们的工作环境是日语,所以我想到可能是编码的问题,将待处理文件内容换为英文,一切正常,line顺利读入数据。后来尝试了下Scanner(file,“utf-8”),依然不行。
最后用BufferedFile解决,代码如下:
FileReader fr=new FileReader(file);
BufferedFile bf=new BufferedFile(fr);
while(bf.hasNextLine())
{
String line=bf.nextLine();
...
}
虽然解决了,但不知道为何,发出来大家讨论一下,第一次发帖,没多少分,见谅。
Scanner sca=Scanner(file);
while(sca.hasNextLine())
{
String line=sca.nextLine();
...
}
逐行读入字符,但发现什么都没读到,line是null,但原文件中的确是有文本的。因为我们的工作环境是日语,所以我想到可能是编码的问题,将待处理文件内容换为英文,一切正常,line顺利读入数据。后来尝试了下Scanner(file,“utf-8”),依然不行。
最后用BufferedFile解决,代码如下:
FileReader fr=new FileReader(file);
BufferedFile bf=new BufferedFile(fr);
while(bf.hasNextLine())
{
String line=bf.nextLine();
...
}
虽然解决了,但不知道为何,发出来大家讨论一下,第一次发帖,没多少分,见谅。
BufferedReader bf=new BufferedReader(fr);
String str=null;
while((str=bf.readLine())!=null)
{
System.out.println(str);
}不过使用Scanner传Reader比较好 File file=new File("路径");
FileReader fr = new FileReader(file);
Scanner sca=new Scanner(fr);
while(sca.hasNext())
{
System.out.println(sca.nextLine());
}
使用 new Scanner(new FileInputStream(file),"GBK")正常。