回答
一個File對象不包含文件的內容。它只是指向硬盤(或其他存儲介質,如SSD,USB驅動器,網絡共享)上文件的指針。所以我想你想要的是將它寫入硬盤。
你必須寫使用一些類文件的Java API
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(yourFile));
bos.write(fileBytes);
bos.flush();
bos.close();
你也可以使用一個作家,而不是一個OutputStream的英寸使用編寫器將允許您編寫文本(字符串,字符[])。
BufferedWriter bw = new BufferedWriter(new FileWriter(yourFile));
既然你說你想保留在內存中的一切,不想寫什麼,你可以嘗試使用ByteArrayInputStream
。這模擬了一個InputStream,你可以傳遞給大部分的類。
ByteArrayInputStream bais = new ByteArrayInputStream(yourBytes);
文件對象爲空?並且我不想要任何東西被保存在磁盤...它可以在內存中,所以如何將字節數組轉換爲文件對象 – farajnew
我得到了這個java.io.IOException:打開失敗:EACCES(權限被拒絕)在Android應用程序在編寫BufferedOutputStream時bos = new BufferedOutputStream(new FileOutputStream(yourFile)); –
@SanketThakkar:您可能沒有寫入權限(權限)在該位置寫入文件。嘗試不同的位置。 –
使用FileOutputStream。
FileOutputStream fos = new FileOutputStream(objFile);
fos.write(objFileBytes);
fos.close();
public void writeToFile(byte[] data, String fileName) throws IOException{
FileOutputStream out = new FileOutputStream(fileName);
out.write(data);
out.close();
}
好吧,你問它:
File file = new File("myfile.txt");
// convert File to byte[]
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(file);
bos.close();
oos.close();
byte[] bytes = bos.toByteArray();
// convert byte[] to File
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bis);
File fileFromBytes = (File) ois.readObject();
bis.close();
ois.close();
System.out.println(fileFromBytes);
但是,這是毫無意義的。請說明你想要達到的目標。
他解釋了他真正想要的東西,請查看評論 – Caner
Tnx,看完後我認爲他太無能爲力了。我的意思是,他需要至少意識到他正試圖解決的問題並提供相關信息,而這兩方面都不是這種情況。 –
由於我是這裏爲數不多的回答問題的人之一,因此我對可憐的選票感到悲傷。 –
請參閱How to render PDF in Android。看起來您可能沒有任何選擇,除了將內容保存到SD文件(臨時)以便能夠在PDF查看器中顯示它。
這個問題與PDF –
@MikeKeskinov無關,請閱讀提問者的評論。它與PDF有關。 – pap
然後我是投票表決的問題。我在嘗試查找信息時發現這個問題如何將byte []保存到文件。這個問題本身並沒有提到PDF。需要更改問題和標題,否則會令人困惑。 –
- 1. 將byte []轉換爲Java中的Object File
- 2. 在RMS列中寫入byte []
- 3. 如何將byte []寫入IoSession
- 4. 將內容從byte []寫入Alfresco repo
- 5. 將ReadOnlyCollection <byte>寫入流
- 6. 將(byte [] b)寫入BufferedOutputStream會發生什麼? (Java)
- 7. Java-將bufferedimage轉換爲byte []而不寫入磁盤
- 8. FILE寫入; SSH_AGENT_PID = 2547?
- 9. 在java中將byte []轉換爲long []
- 10. Arrays.copyOfRange(byte [],long,long)?在Java中
- 11. 使用Java(.ttf-file)將字體寫入磁盤
- 12. 從android中byte []寫入文件失敗
- 13. 在FileOutputStream上測試寫入(byte [])與BufferedOutputStream
- 14. ArrayIndex在java中出界byte []
- 15. 在java中初始化byte []
- 16. 在Android中將int轉換爲byte []
- 17. Flex - Java byte to mp3
- 18. android java socket寫入和接收byte []數據
- 19. 如何將多個元素放入java的byte []中
- 20. Arraylist of byte [] Java
- 21. Java byte to int
- 22. Java byte Image Manipulation
- 23. 如何將設置變量轉換爲byte/file/inputstream/string?
- 24. 流寫入字符串和byte []數組?
- 25. 在Java中,如何正確地將byte []轉換爲字符串爲byte []?
- 26. MAPR -File讀取和寫入過程
- 27. 將Postgres幾何讀入hibernate的byte []中?
- 28. 使用Java在MongoDB中存儲byte []
- 29. 如何將IEnumerable <byte>寫入磁盤?
- 30. 將Java Byte []轉換爲VB.NET MemoryStream
「將字節數組轉換爲File對象」除了要將字節寫入文件以外,沒有任何意義。關於如何做到這一點,您至少有3個不同的答案。這是你在追求什麼?否則,請澄清。 – pap
我正在開發的android ...我有一個文件保存在磁盤加密和解鎖加密,所以我得到的字節數組,所以我想將它們轉換爲文件,以顯示在pdf查看器的PDF文件,但沒有保存文件沒有加密的磁盤 – farajnew
那麼,那是一個完全不同的東西。你想從一個MemoryFile(http://developer.android.com/reference/android/os/MemoryFile.html)啓動一個pdf查看器。不知道你會怎麼做,或者你如何顯示PDF。你有一些代碼或信息可以增加你實際調用PDF查看器的方式嗎?你正在使用哪個瀏覽器? – pap