如何开始在特定位置读取文件?

时间:2014-01-04 21:36:02

标签: java file file-io io

首先,我有几个小时的Java经验,如果它有点简单的问题,抱歉。

现在,我想读取一个文件,但我不想从文件的开头开始,而是想先跳过1024个字节而不是开始阅读。有没有办法做到这一点 ?我意识到RandomAccessFile可能有用,但我不确定。

try {
     FileInputStream inputStream=new FileInputStream(fName);
       // skip 1024 bytes somehow and start reading .
} catch (FileNotFoundException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
}

2 个答案:

答案 0 :(得分:4)

您需要使用FileInputStream.skip方法寻找您想要的点,然后从该点开始阅读。关于FileInputStream的javadocs中有更多您可能感兴趣的信息。

答案 1 :(得分:0)

你可以使用像skipBytes()这样的方法

/**
 * Read count bytes from the InputStream to "/dev/null".
 * Return true if count bytes read, false otherwise.
 * 
 * @param is
 *          The InputStream to read.
 * @param count
 *          The count of bytes to drop.
 */
private static boolean skipBytes(
    java.io.InputStream is, int count) {
  byte[] buff = new byte[count];
  /*
   * offset could be used in "is.read" as the second arg
   */
  try {
    int r = is.read(buff, 0, count);
    return r == count;
  } catch (IOException e) {
    e.printStackTrace();
  }
  return false;
}