首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java中将字节数组写入文件?

如何在Java中将字节数组写入文件?
EN

Stack Overflow用户
提问于 2009-11-20 19:07:35
回答 6查看 146.1K关注 0票数 71

如何在Java中将字节数组写入文件?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-11-20 19:14:31

您可以从Apache Commons IO使用IOUtils.write(byte[] data, OutputStream output)

代码语言:javascript
复制
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128);
SecretKey key = kgen.generateKey();
byte[] encoded = key.getEncoded();
FileOutputStream output = new FileOutputStream(new File("target-file"));
IOUtils.write(encoded, output);
票数 40
EN

Stack Overflow用户

发布于 2013-07-17 02:33:32

从Java1.7开始,有了一种新的方式:java.nio.file.Files.write

代码语言:javascript
复制
import java.nio.file.Files;
import java.nio.file.Paths;

KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128);
SecretKey key = kgen.generateKey();
byte[] encoded = key.getEncoded();
Files.write(Paths.get("target-file"), encoded);

Java 1.7还解决了Kevin描述的尴尬:读取文件现在是:

代码语言:javascript
复制
byte[] data = Files.readAllBytes(Paths.get("source-file"));
票数 33
EN

Stack Overflow用户

发布于 2009-11-20 19:17:44

要将字节数组写入文件,请使用方法

代码语言:javascript
复制
public void write(byte[] b) throws IOException

来自BufferedOutputStream类。

java.io.BufferedOutputStream实现了缓冲输出流。通过设置这样的输出流,应用程序可以将字节写入底层输出流,而不必为写入的每个字节调用底层系统。

对于您的示例,您需要类似以下内容:

代码语言:javascript
复制
String filename= "C:/SO/SOBufferedOutputStreamAnswer";
BufferedOutputStream bos = null;
try {
//create an object of FileOutputStream
FileOutputStream fos = new FileOutputStream(new File(filename));

//create an object of BufferedOutputStream
bos = new BufferedOutputStream(fos);

KeyGenerator kgen = KeyGenerator.getInstance("AES"); 
kgen.init(128); 
SecretKey key = kgen.generateKey(); 
byte[] encoded = key.getEncoded();

bos.write(encoded);

} 
// catch and handle exceptions...
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1769776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档