请教Java读中文不能识别换行符

waterloong 2013-09-23 11:22:56
不知道为什么
用notepad++和qq输入法打的字,用中文java不能识别换行符
英文却可以, 代码如下

Scanner in = new Scanner(file, "EUC_CN");
in.useLocale(Locale.CHINESE);
System.out.println(in.nextLine());

stacktrace:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at Main.main(Main.java:39)
...全文
238 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
踩踩一哥 2013-09-24
  • 打赏
  • 举报
回复
文件一般用流操作读写吧,你这个是编码问题 import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Scanner; public class ttt{ public static void main(String[] args) throws FileNotFoundException { // TODO 自动生成方法存根 // BufferedReader br = new BufferedReader(new FileReader("D:\\test.txt")); // StringBuffer sb = new StringBuffer(); // String lineContent = null ; // try // { // while( (lineContent = br.readLine()) != null) // System.out.println(lineContent); // } // catch (IOException e) // { // e.printStackTrace(); // } // File file=new File("D:\\test.txt"); Scanner in = new Scanner(file, "utf-8"); in.useLocale(Locale.ENGLISH); while (in.hasNextLine()) { System.out.println(in.nextLine()); } } } 换成utf-8就可以了
waterloong 2013-09-23
  • 打赏
  • 举报
回复
有下一行的。只是英文的多行文本可以识别,中文不能识别行 如果我先判断hasNextLine()总是false(即使确实文本确实有很多行),根本就不会执行nextLine() 但是file.length()得出的又不是0.
rencht 2013-09-23
  • 打赏
  • 举报
回复
这是没有下一行抛的异常啦, 调nextLine方法之前先判断一下hasNextLine

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧