ここから、Java IO および Java NIO との大きな違いは、最初はバッファーの作成後にのみデータからナビゲートできることです (たとえば、BufferedInputStreamer オブジェクトを使用すると思います)。次に、チャネルから読み取られたデータがバッファに直接格納されます。
古い IO バッファから前後にナビゲートし、新しい IO API に変換する方法を示すコード スニペットを誰か書いてもらえませんか?
ありがとう。
1024 をスキップし、次の 1024 を読み取り、0 に戻る例。
にお:
int i=1024;
Path p = Paths.get("./","file.txt");
SeekableByteChannel sbc = Files.newByteChannel(p, StandardOpenOption.READ);
sbc.position((long)i);
ByteBuffer bf = ByteBuffer.allocate(i);
sbc.read(bf);
byte[] b = bf.array();
sbc.position(0L);
いお:
int i=1024;
File f = new File("./file.txt");
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));
bis.mark(i*2);
bis.skip((long)i);
byte[] b = new byte[i];
bis.read(byte[] b);
bis.reset();