我从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);
             }

解决方案 »

  1.   

    linux下字符编码问题吧,统一用成UTF-8呢?
    或是在JAVA读出流来 ISO-88591转换下.
      

  2.   

    1 readLine 会根据 \n, \r\n 自动区分的
    2 因为汉字是乱码,造成文件行内容读取不正确请给出例子, readline 只负责读取一行,只要最终行数对了就没有问题
    如果是乱码问题,那是编码造成的,不是readLine的过错!
      

  3.   

    InputStream is = ...; // 拿到输入流 
    InputStreamReader isr = new InputStreamReader(is, "GBK"); // 这个方法可以善加利用,解决编码问题 你需要制定一下读取的编码类型,就可以解决乱码问题了!