byte 以Java文件格式

使用Java:

我有一个byte[]代表一个文件。

如何将其写入文件(即C:\myfile.pdf

我知道这是用InputStream完成的,但我似乎无法解决这个问题。

使用Apache Commons IO

 FileUtils.writeByteArrayToFile(new File("pathname"), myByteArray) 

或者,如果你坚持为自己做工作…

 FileOutputStream fos = new FileOutputStream("pathname"); fos.write(myByteArray); fos.close(); 

没有任何图书馆:

 FileOutputStream stream = new FileOutputStream(path); try { stream.write(bytes); } finally { stream.close(); } 

借助Google Guava :

 Files.write(bytes, new File(path)); 

使用Apache Commons :

 FileUtils.writeByteArrayToFile(new File(path), bytes); 

所有这些策略都要求您在某个时刻捕获IOException。

另一个使用java.nio.file解决scheme:

 byte[] bytes = ...; Path path = Paths.get("C:\myfile.pdf"); Files.write(path, bytes); 

Java 7开始,您可以使用try-with-resources语句来避免资源泄露,并使代码更易于阅读。 更多在这里 。

要写你的byteArray到一个文件,你应该这样做:

 try (FileOutputStream fos = new FileOutputStream("fullPathToFile")) { fos.write(byteArray); } catch (IOException ioe) { ioe.printStackTrace(); } 

另外从Java 7开始,一行java.nio.file.Files:

 Files.write(new File(filePath).toPath(), data); 

数据是你的byte [],filePath是一个String。 您还可以使用StandardOpenOptions类添加多个文件打开选项。 添加投掷或环绕与try / catch。

尝试一个OutputStream或更具体的FileOutputStream

我知道这是用InputStream完成的

其实,你会写一个文件输出 …

基本示例:

 String fileName = "file.test"; BufferedOutputStream bs = null; try { FileOutputStream fs = new FileOutputStream(new File(fileName)); bs = new BufferedOutputStream(fs); bs.write(byte_array); bs.close(); bs = null; } catch (Exception e) { e.printStackTrace() } if (bs != null) try { bs.close(); } catch (Exception e) {} 

你可以尝试Cactoos :

 new LengthOf(new TeeInput(array, new File("a.txt"))).value(); 

更多细节: http : //www.yegor256.com/2017/06/22/object-oriented-input-output-in-cactoos.html

这是一个程序,我们正在读取和打印使用string生成器的字节偏移量和长度的数组,并将字节偏移量的数组写入新文件。

在这里input代码

 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; //*This is a program where we are reading and printing array of bytes offset and length using StringBuilder and Writing the array of bytes offset length to the new file*// public class ReadandWriteAByte { public void readandWriteBytesToFile(){ File file = new File("count.char"); //(abcdefghijk) File bfile = new File("bytefile.txt");//(New File) byte[] b; FileInputStream fis = null; FileOutputStream fos = null; try{ fis = new FileInputStream (file); fos = new FileOutputStream (bfile); b = new byte [1024]; int i; StringBuilder sb = new StringBuilder(); while ((i = fis.read(b))!=-1){ sb.append(new String(b,5,5)); fos.write(b, 2, 5); } System.out.println(sb.toString()); }catch (IOException e) { e.printStackTrace(); }finally { try { if(fis != null); fis.close(); //This helps to close the stream }catch (IOException e){ e.printStackTrace(); } } } public static void main (String args[]){ ReadandWriteAByte rb = new ReadandWriteAByte(); rb.readandWriteBytesToFile(); } } 

控制台中的O / P:fghij

O / P在新文件中:cdefg

 File f = new File(fileName); byte[] fileContent = msg.getByteSequenceContent(); Path path = Paths.get(f.getAbsolutePath()); try { Files.write(path, fileContent); } catch (IOException ex) { Logger.getLogger(Agent2.class.getName()).log(Level.SEVERE, null, ex); } 

////////////////////////// 1] File to Byte [] ///////////////// //

 Path path = Paths.get(p); byte[] data = null; try { data = Files.readAllBytes(path); } catch (IOException ex) { Logger.getLogger(Agent1.class.getName()).log(Level.SEVERE, null, ex); } 

/////////////////////// 2] Byte []到文件//////////////////// ///////

  File f = new File(fileName); byte[] fileContent = msg.getByteSequenceContent(); Path path = Paths.get(f.getAbsolutePath()); try { Files.write(path, fileContent); } catch (IOException ex) { Logger.getLogger(Agent2.class.getName()).log(Level.SEVERE, null, ex); }