读取文件字节流到字节数组,字节数组写入到文件

转自

//读取文件字节流到字节数组
  	public static byte[] fileToByteArray(String srcPath) {
		// 创建源和目的地
		File src = new File(srcPath);
		byte[] datas = null;
		// 选择流
		try (InputStream is = new BufferedInputStream(new FileInputStream(src));
				ByteArrayOutputStream baos = new ByteArrayOutputStream();) {
			// 操作(分段读取)
			byte[] flush = new byte[1024];// 缓冲容器
			int len = -1;// 接收长度
			while ((len = is.read(flush)) != -1) {
				baos.write(flush, 0, len);
			}
			baos.flush();
			// 获取数据
			datas = baos.toByteArray();
			return datas;
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}
//字节数组写入文件
  	public static void byteArrayToFile(byte[] datas, String destPath) {
		// 创建源
		File dest = new File(destPath);
		// 选择流
		try (InputStream is = new ByteArrayInputStream(datas);
				OutputStream os = new BufferedOutputStream(new FileOutputStream(dest, false));) {
			// 操作(分段读取)
			byte[] flush = new byte[1024];// 缓冲容器
			int len = -1;// 接收长度
			while ((len = is.read(flush)) != -1) {
				os.write(flush, 0, len);
			}
			os.flush();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用以下代码将字节数组写入到HTTP响应,以实现下载压缩文件的功能: ```java import java.io.IOException; import java.util.zip.ZipOutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class DownloadServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应内容类型为zip文件 response.setContentType("application/zip"); // 设置响应头,指定文件名 response.setHeader("Content-Disposition", "attachment; filename=\"compressed.zip\""); // 获取要压缩的字节数组 byte[] data = getCompressedData(); // 将字节数组写入HTTP响应 response.getOutputStream().write(data); } private byte[] getCompressedData() { // 这里是你获取压缩字节数组的逻辑,可以是从文件读取或通过其他方式生成 // 假设这里直接返回一个示例字节数组 return new byte[] { 0x50, 0x4B, 0x03, 0x04, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ... }; } } ``` 上述代码,我们创建了一个 `DownloadServlet` 类来处理 HTTP GET 请求。在 `doGet` 方法,我们首先设置响应的内容类型为 zip 文件,然后设置响应头,指定文件名为 "compressed.zip"。接下来,我们调用 `getCompressedData` 方法获取要压缩的字节数组,并将其写入到 HTTP 响应的输出流,实现下载压缩文件的功能。 请注意,以上代码只是一个示例,你需要根据实际情况进行适当的修改和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值