2011-08-19 164 views
3

如何将文件转换为二进制文件?我只需要它为我的项目。我需要通过二进制文件加密文件。Java文件到二进制转换

+3

文件已经是二进制数据。请提供更多信息。 –

+0

你是什么意思将文件完全转换为二进制文件? –

+1

如果你的意思是文件到字节数组:http://www.exampledepot.com/egs/java.io/file2bytearray.html – jacop41

回答

13

如果你指的是访问实际的二进制形式,然后读取文件中的每一个字节转换成二进制表示...

编辑:

下面是一些代码的字节转换成串位:

String getBits(byte b) 
{ 
    String result = ""; 
    for(int i = 0; i < 8; i++) 
     result += (b & (1 << i)) == 0 ? "0" : "1"; 
    return result; 
} 

如果你指的是访问该字节的文件,然后简单地使用下面的代码(你可以使用这个对于第一种情况为好):

File file = new File("filename.bin"); 
byte[] fileData = new byte[file.length()]; 
FileInputStream in = new FileInputStream(file); 
in.read(fileData): 
in.close(); 
// now fileData contains the bytes of the file 

要使用这些两段代码,您现在可以遍历每一个字节,并创建一个位一个String对象(8X比原始文件大小!!大):

String content = ""; 
for(byte b : fileData) 
    content += getBits(b); 
// content now contains your bits. 
+0

感谢这一个。 –

+0

你认为我可以扭转它吗?二进制表示到文件。 –

+0

请参阅http://stackoverflow.com/q/6981555/307767 – oliholz

0

随着FileInputStream可以获得从文件

字节从JavaDoc的:

一个FileInputStream获得输入从一个文件在文件系统 字节。哪些文件可用取决于主机环境。

FileInputStream用于读取原始字节流,如 图像数据。要阅读字符流,请考虑使用 FileReader。

1
 try { 
      StringBuilder sb = new StringBuilder(); 
      File file = new File("C:/log.txt"); 
      DataInputStream input = new DataInputStream(new FileInputStream(file)); 
      try { 
       while(true) { 
        sb.append(Integer.toBinaryString(input.readByte())); 
       } 
      } catch(EOFException eof) { 
      } catch(IOException e) { 
       e.printStackTrace(); 
      } 
      System.out.println(sb.toString()); 
     } catch(FileNotFoundException e2) { 
      e2.printStackTrace(); 
     } 
+0

对于xml,只需更改为log.xml –