读取行作为字节数组,没有默认编码

时间:2013-11-18 15:04:48

标签: java java-io

如何以最有效的方式从文件中读取一行(由\n\r或两者完成)作为字节数组,而不通过String(如果我将行读入String,应用了默认编码,我不希望这一步。)

1 个答案:

答案 0 :(得分:1)

如果不手动操作,我认为你不能这样做。但为了节省您的时间,我会为您编写代码:

public static byte[] firstLine(InputStream in) {
    byte[] buffer = new byte[1024]; // arbitrary number
    int idx = 0;
    byte b;
    while ((b = in.read()) != 0x0d || b != 0x0a) { // those codes are CR and LF
        if (idx >= buffer.length)
            buffer = Arrays.copyOf(buffer, buffer.length * 2);
        buffer[idx] = b;
    return Arrays.copyOf(buffer, idx);
}