日期:2014-05-20  浏览次数:20803 次

不同系统下文件的读取问题!!求救!
我从unix上生成了一个汉字文件,比如以下为文件片段:(其中\n为行结尾,是看不到的)

  999025||全球通188元套餐||1||全球通\n
  999026||全球通288元套餐||1||全球通\n
  999018||动感地带校园卡||4||动感地带\n

在另一个linux系统中用BufferedReader类的readLine()方法读出来(文件有若干行),然读出来的数据总是不对,好象一下就把所有文件内容给读了出来,文件内行结尾是以\n结尾,在linux系统中,因为汉字是乱码,造成文件行内容读取不正确,可是在windows系统下这样的文件可以正确读取出来,
是不是在linux系统中用readLine()方法只能读行结尾为\r\n的文件啊??还是因为汉字乱码造成的啊??


我该怎么样处理啊?请高手指点!!
我的读取程序:
  FileInputStream input = new FileInputStream("filename");
  //InputStreamReader reader = new InputStreamReader(input, "");
  InputStreamReader reader = new InputStreamReader(input);
  BufferedReader in = new BufferedReader(reader);

  while ((strBuf = in.readLine()) != null) {
  System.out.println("line : "+ strBuf);
  }

------解决方案--------------------
linux下字符编码问题吧,统一用成UTF-8呢?
或是在JAVA读出流来 ISO-88591转换下.
------解决方案--------------------
1 readLine 会根据 \n, \r\n 自动区分的
2 因为汉字是乱码,造成文件行内容读取不正确

请给出例子, readline 只负责读取一行,只要最终行数对了就没有问题
如果是乱码问题,那是编码造成的,不是readLine的过错!