在java nio ByteBuffer中查找换行符

时间:2015-03-04 12:51:27

标签: java bytebuffer

我正在尝试使用包含数据行的.dat文件。每行以字符序列开头,例如ABC1 ... 99;但将包含int,long和char的混合。每行以换行符结束。

我正在尝试检测数据行末尾的新行字符,我应该怎么做才能找到正确的换行符。

下面的代码打开文件,缓冲它并将缓冲区打印为char以进行调试

RandomAccessFile file2 = null;
try {
    file2 = new RandomAccessFile(sampleFile.dat, "r");
    FileChannel fileChannel = file2.getChannel();
    ByteBuffer buffer = ByteBuffer.allocate(48);
    int bytes = fileChannel.read(buffer);
    bytes = fileChannel.read(buffer);
    while (bytes != -1) {
        buffer.flip();

        while (buffer.hasRemaining()) {
            System.out.print((char) buffer.get());
        }

        buffer.clear();
        bytes = fileChannel.read(buffer);

    }

} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {
        file2.close();
    } catch (IOException ioe) {
        ioe.printStackTrace();
    }
}

0 个答案:

没有答案