加急!! 如何定位读取文件中某行内容,文件写入时用的是FileInputStream

zhangxm2015 2013-12-09 10:37:44
例如文件:
我要读取第6161行的信息如何做
...全文
199 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangxm2015 2013-12-09
  • 打赏
  • 举报
回复
引用 6 楼 oh_Maxy 的回复:
[quote=引用 3 楼 FirstHelloWorld 的回复:] [quote=引用 1 楼 FirstHelloWorld 的回复:] RandomAccessFile定位读取时,出现乱码,转码好像也不行!!
这个貌似不行,读取时会出现乱码。 我想问下用InputStream的skip方法可行吗? [/quote] 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();
            }
        }
如果有好法子,分享下哈~[/quote] 这个貌似可以 ,谢了。我试下
zhangxm2015 2013-12-09
  • 打赏
  • 举报
回复
引用 4 楼 acefr 的回复:
http://hi.baidu.com/zhaotao_king/item/56256198b74c048d59146177
嗯,文件是乱码, 我这个是上传图片及描述信息的临时文件, 我希望的是将描述信息取出,并转换为正常的文字(用的是FileInputStream读取的) 你用的字符流,我感觉会乱码. 求更好的方法。
oh_Maxy 2013-12-09
  • 打赏
  • 举报
回复
引用 3 楼 FirstHelloWorld 的回复:
[quote=引用 1 楼 FirstHelloWorld 的回复:] RandomAccessFile定位读取时,出现乱码,转码好像也不行!!
这个貌似不行,读取时会出现乱码。 我想问下用InputStream的skip方法可行吗? [/quote] 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();
            }
        }
如果有好法子,分享下哈~
BUG胡汉三 2013-12-09
  • 打赏
  • 举报
回复
引用 1 楼 FirstHelloWorld 的回复:
RandomAccessFile定位读取时,出现乱码,转码好像也不行!!


你这个文件本身就是乱码的吧?


acefr 2013-12-09
  • 打赏
  • 举报
回复
http://hi.baidu.com/zhaotao_king/item/56256198b74c048d59146177
zhangxm2015 2013-12-09
  • 打赏
  • 举报
回复
引用 1 楼 FirstHelloWorld 的回复:
RandomAccessFile定位读取时,出现乱码,转码好像也不行!!
这个貌似不行,读取时会出现乱码。 我想问下用InputStream的skip方法可行吗?
oh_Maxy 2013-12-09
  • 打赏
  • 举报
回复
RandomAccessFile的seek(long pos) 能否达成你的要求?
zhangxm2015 2013-12-09
  • 打赏
  • 举报
回复
RandomAccessFile定位读取时,出现乱码,转码好像也不行!!

81,092

社区成员

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

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