2013-03-05 55 views
2

有什么像扫描仪的二进制数据?我希望例如使用分隔符,如“\ r \ n”,并在每次调用某个方法时都获取byte []。你能给我提供可以创造奇迹的课吗?类似扫描仪的二进制数据

回答

0

雅加达公共有一个图书馆,你可以使用。只需从jakarta下载.jar并下载它们的.jar,然后通过添加外部jar将其添加到您的构建路径中。 IOUtils.toByteArray(InputStream input)

+0

但我想要例如整行字节。 – oneat 2013-03-05 18:33:22

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 

希望这有助于

1

考虑使用DataInputStreamDataOutputStream

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();