2

有没有类似二进制数据扫描仪的东西?例如,我想使用像 "\r\n" 这样的分隔符,并在每次调用某个方法时获取字节 []。你能给我提供可以创造这样奇迹的课程吗?

4

3 回答 3

1

考虑使用DataInputStreamand DataOutputStream

File file = new File("binaryFile.dat");
FileOutputStream fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos);
DataOutputStream dos = new DataOutputStream(bos);

byte[] array1 = ...
byte[] array2 = ...
byte[] array3 = ...

dos.writeInt(array1.length);
for(byte b : array1) dos.wrtieByte(b);

dos.writeInt(array2.length);
for(byte b : array2) dos.wrtieByte(b);

dos.writeInt(array3.length);
for(byte b : array3) dos.wrtieByte(b);

并像这样阅读:

File file = new File("binaryFile.dat");
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);

byte[] array1 = new byte[dis.readInt()];
for(int i = 0; i < array1.length; i++) array1[i] = dis.readByte();

byte[] array2 = new byte[dis.readInt()];
for(int i = 0; i < array2.length; i++) array2[i] = dis.readByte();

byte[] array3 = new byte[dis.readInt()];
for(int i = 0; i < array3.length; i++) array3[i] = dis.readByte();
于 2013-03-05T19:07:26.393 回答
0

Jakarta commons 有一个可以使用的库。只需从jakarta下载 .jar 并下载他们的 .jar 并通过添加外部 jar 将其添加到您的构建路径中。IOUtils.toByteArray(InputStream input)

于 2013-03-05T18:32:13.397 回答
0

您可以使用java.io.InputStream类:

InputStream is = new FileInputStream("your_file");
byte[] b = new byte[is.available()];  //reads how much bytes are readable from file
is.read(b);//reads the file and save all read bytes into b

希望这可以帮助

于 2013-03-05T18:34:56.450 回答