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