0

我正在寻找一种在读取字节(作为字节 [])和从文件中读取字符串行之间切换的方法。我知道可以通过 FileInputStream 从文件中获取 byte[],并且可以通过 BufferedReader 获取 String,但是同时使用它们是有问题的。我知道字节部分有多长。从我写文件开始,字符串编码就可以保持不变。文件类型是一种仍在开发中的自定义文件类型,因此我可以更改写入数据的方式。

java - 如何从java中的同一个文件中读取字符串和字节[]?

4

4 回答 4

1

读取为字节。当您读取了您知道应该是字符串的字节序列时,将这些字节放入数组中,将数组放入 aByteArrayInputStream并将其用作InputStreama 的底层以Reader将字节作为字符,然后读取这些字符以生成 a String.

对于此过程的后面部分,请参阅有关如何StringInputStream.

于 2013-06-18T22:24:10.387 回答
0

为什么不试试这个:

        BufferedReader bufferedReader = null;

        try {
            bufferedReader = new BufferedReader(new FileReader("testing.txt"));
            String line = bufferedReader.readLine();
            while(line != null){
                byte[] b = line.getBytes();
            }

        } finally {
            if(bufferedReader!=null){
                bufferedReader.close();
            }
        }

或者

            FileInputStream in = null;
        BufferedReader bufferedReader = null;

        try {
            bufferedReader = new BufferedReader(new FileReader("xanadu.txt"));
            String line = bufferedReader.readLine();
            while(line != null){
                //read your line
            }
            in = new FileInputStream("xanadu.txt");
            int c;
            while ((c = in.read()) != -1) {
                //read your bytes (c)
            }


        } finally {
            if (in != null) {
                in.close();
            }
            if(bufferedReader!=null){
                bufferedReader.close();
            }
        }
于 2013-06-18T22:43:38.010 回答
0

使用 a then use将文件读取为Strings 。BufferedReaderString.getBytes()

于 2013-06-18T22:24:35.917 回答
0

从缓冲的输入流中读取所有内容作为字节,并使用接受字节数组的构造函数将字符串部分转换为字符串:

 String string = new String(bytes, offset, length, "US-ASCII"); 

根据数据的实际编码方式,您可能需要使用“UTF-8”或其他名称作为charset的名称。

于 2013-06-19T17:46:41.360 回答