0
public static void main(String[] args) {
  File inFile = null;
  if (0 < args.length) {
      inFile = new File(args[0]);
  }

    BufferedInputStream bStream = null;

    try {

        int read;
        byte[] bytes = new byte[1260];
        bStream = new BufferedInputStream(new FileInputStream(inFile));

        while ((read = bStream.read(bytes)) > 0) {
            getMarker(read);
        }
    }

 private static void getMarker(int read) {

 }

我无法查看创建字节数组的位置以及可以访问字节数组中的数据的位置。我认为read这将是我的字节数组,我可以在其中搜索我的标记getMarker(可能使用 long),但 read 只是一个整数值。那么我的字节数组中的数据在bytes吗?或者我在哪里可以访问字节数组中的实际二进制值进行搜索?

4

1 回答 1

2

这些read方法用从文件中读取的数据填充您传递的数组的一部分,并返回它读取的字节数。要在您的方法中访问数组,您getMarker必须将它传递到那里,而不仅仅是读取到其中的字节数。例如:

    while ((read = bStream.read(bytes)) > 0) {
        getMarker(read, bytes);
    }
...

 private static void getMarker(int read, byte[] bytes) {
     // data has been read into the "bytes" array into index 0 through read-1
 }
于 2013-05-31T17:38:41.510 回答