RandomAccessFile定位读取时,出现乱码,转码好像也不行!!

解决方案 »

  1.   

    RandomAccessFile的seek(long pos) 能否达成你的要求?
      

  2.   


    这个貌似不行,读取时会出现乱码。
    我想问下用InputStream的skip方法可行吗?
      

  3.   

    http://hi.baidu.com/zhaotao_king/item/56256198b74c048d59146177
      

  4.   


    这个貌似不行,读取时会出现乱码。
    我想问下用InputStream的skip方法可行吗?

    skip也不是跳过行,暂时有个笨法子:        LineNumberReader lineBufferedReader = null;
            try {
                lineBufferedReader = new LineNumberReader(new InputStreamReader(new FileInputStream(
                        new File("E:\\javaTest\\中国心.txt")), "UTF-8"));// 这里可以根据情况选择指定字符集读取文件
                String tmp = null;
                // 跳过前三行
                while (lineBufferedReader.getLineNumber() < 3) {
                    lineBufferedReader.readLine();
                }
                tmp = lineBufferedReader.readLine();
                System.out.println(tmp);        } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (null != lineBufferedReader) {
                        lineBufferedReader.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }如果有好法子,分享下哈~
      

  5.   

    嗯,文件是乱码,
    我这个是上传图片及描述信息的临时文件,
    我希望的是将描述信息取出,并转换为正常的文字(用的是FileInputStream读取的)你用的字符流,我感觉会乱码.
    求更好的方法。
      

  6.   


    这个貌似不行,读取时会出现乱码。
    我想问下用InputStream的skip方法可行吗?

    skip也不是跳过行,暂时有个笨法子:        LineNumberReader lineBufferedReader = null;
            try {
                lineBufferedReader = new LineNumberReader(new InputStreamReader(new FileInputStream(
                        new File("E:\\javaTest\\中国心.txt")), "UTF-8"));// 这里可以根据情况选择指定字符集读取文件
                String tmp = null;
                // 跳过前三行
                while (lineBufferedReader.getLineNumber() < 3) {
                    lineBufferedReader.readLine();
                }
                tmp = lineBufferedReader.readLine();
                System.out.println(tmp);        } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (null != lineBufferedReader) {
                        lineBufferedReader.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }如果有好法子,分享下哈~这个貌似可以 ,谢了。我试下