2015-12-02 58 views
-3

我正在寫一個Java程序,它使用RSA加密給定的文本,並將加密的字節(byte []數組)保存在.txt文件中。有一個單獨的解密程序讀取這些字節。現在我想將相同的字節讀入到解密程序的一個字節[]中。這怎麼用Java來完成?如何從文件讀取字節到byte []數組?

BufferedReader brip = new BufferedReader(new FileReader("encrypted.txt")); 
Strings CurrentLine = brip.readLine(); 
byte[] b = sCurrentLine.getBytes(); 

這就是我一直在從文件中讀取數據的方式。但是這是錯誤的,因爲它將sCurrentLine變量中的字節轉換爲字節。

+3

您是否嘗試過讀取它?請演示一些嘗試通過顯示示例代碼來解決您的問題。如果你不知道從哪裏開始,Google總是一個不錯的選擇。 – rmlan

+0

向我們展示了迄今爲止您所做的一切。 – Raf

+1

這裏一切都是錯誤的。加密的數據不是文本;不應該存儲在名爲.txt的文件中;不包含行;並且不能用'Reader.'讀取。使用'InputStream.' – EJP

回答

14

在Java 7中,您可以使用Files類的readAllBytes()方法。請看下圖:

Path fileLocation = Paths.get("C:\\test_java\\file.txt"); 
byte[] data = Files.readAllBytes(fileLocation); 

還有許多其他的方式來做到這一點看herehere

0

此代碼爲我工作,在Android項目,所以希望,它會爲你工作。

private byte[] getByte(String path) { 
    byte[] getBytes = {}; 
    try { 
     File file = new File(path); 
     getBytes = new byte[(int) file.length()]; 
     InputStream is = new FileInputStream(file); 
     is.read(getBytes); 
     is.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return getBytes; 
}