我正在尝试通过使用 Java 中的 FileInputStream 一次读取块来读取文件。代码如下:
File file = new File(filepath);
FileInputStream is = new FileInputStream(file);
byte[] chunk = new byte[bytelength];
int chunkLen = chunk.length;
long lineCnt = 0;
while ((chunkLen = is.read(chunk)) != -1) {
String decoded = getchunkString(chunk);
System.out.println(decoded);
System.out.println("---------------------------------");
}
我正在使用 bytelength =128 并尝试使用较小的文件进行测试,如下所示:
graph G{
biz -- mai
biz -- ded
biz -- ronpepsi
blaine -- dan
dan -- graysky
dan -- iancr
dan -- maxwell
dan -- foursquare
blaine -- neb
}
当我运行代码时,它会像这样读取块:
graph G{
biz -- mai
biz -- ded
biz -- ronpepsi
blaine -- dan
dan -- graysky
dan -- iancr
dan -- maxwell
dan -- foursquare
blaine
---------------------------------
-- neb
}
iz -- mai
biz -- ded
biz -- ronpepsi
blaine -- dan
dan -- graysky
dan -- iancr
dan -- maxwell
dan -- foursquare
blaine
---------------------------------
我不明白第二块是怎么来的?我希望它应该只是
-- neb
}
当我调试 is.read(chunk)
变成 10 然后 -1 并且它只打印第一个块。