java中文件流读取的read方法注意问题

嘎子 Android 2017-02-18 568 次浏览 , 没有评论

本文说明了一个InputStreamReader类的public?int?read(char[]?cbuf, int?offset, int?length)方法使用时应该注意的一个问题。自己是一个java的新手,所以这个问题对老鸟来说有没有帮助我并不知情,但是我在网络上并没有找到这个问题的详细关于此方面的说明。

先说我的结论,在read方法中offset只能为0,读取的开始位置需要使用skip方法来设置。此结论也适用于java.io.Reader类。

上面这个图片是java api对此方法的说明,并没有指明此问题。所以我并不确定此方法是不是在所有的场合都是这样的,但我在进行Android编程是经过自己的验证此结论是没有问题的。

我遇到的问题是这样的:

在进行Android编程时,我想从一个文件中从第100个字符开始,读取长度为100的字符串。一开始使用的方法类似于read(cbuf, 100, 100)这样的代码,但结果是编译可以通过,但每执行到此行代码时调试直接退出,程序终止,没有任何错误提示。

我花了几天的时间,用了多种方法测试,最张发现,只要是第二个变量offset不为0时,就会出现此问题,所以我就想将文件读取的指针移到100那是不是可以正常读取。最张发现使用

skip(99);

read(cbuf, 0, 100);

这两行代码实现了此功能。

现在看起来这个功能并不复杂,也不难理解,但是在没有解决此问题之前自己真是百思不解,希望我的文章对其他人有点帮助。

原创文章,转载请注明: 转载自TsonTec:测量解决方案提供者

本文链接地址: java中文件流读取的read方法注意问题

相关主题

  • ZXing简明教程-从0开始2017-03-21 ZXing简明教程-从0开始 (1)
    二维码用的越来越多了,所以自己就想研究一下。 我之前也看过有关二维吗相关的东西,知道ZXing这个东西,所以一上去就找到这个类库了。但下下来却发现自己真 […]
  • ZXingAndroidClientLibrary发布及使用指南2017-03-25 ZXingAndroidClientLibrary发布及使用指南 (2)
    经过几天的努力,ZXingAndroidClientLibrary终于经过测试,成功发布。Github地址:https://github.com/RileyG […]
  • Leica仪器通过蓝牙与Android手机连接2017-03-30 Leica仪器通过蓝牙与Android手机连接 (5)
    最近在捣鼓Leica仪器通过蓝牙与Android手机连接,把此事记录一下,希望对其他人有用。 一、各种连接不成功 最早自己使用的是Google官方的例子: […]
  • Kotlin中的When表达式2017-05-28 Kotlin中的When表达式 (0)
    如果之前有其他语言(如Java、C#等)的开发基础,那么在阅读和使用Kotlin时基本没有太大障碍,但有一个关键词是Kotlin中新出现的,那就是when。其 […]
  • 半小时入门Kotlin中的Lambda表达式2017-05-26 半小时入门Kotlin中的Lambda表达式 (0)
    在开始这个教程之前,我还是很有压力的,怎么样才能把这个问题说明白,真是挺让我头疼的。 先给大家来点基础知识吧: 一、函数式编程 有人说 也许继"面 […]
  • Kotlin常用资源整理–不间断更新2017-05-27 Kotlin常用资源整理–不间断更新 (0)
    如果大家英文比较好Kotlin Programming […]

说点什么

您将是第一位评论人!

提醒
avatar
wpDiscuz
回顶部