Tôi giả sử bạn có nghĩa là 'sử dụng' có nghĩa là đọc, nhưng những gì tôi sẽ giải thích cho trường hợp đọc về cơ bản có thể đảo ngược cho trường hợp ghi.
vì vậy bạn kết thúc với một byte []. điều này có thể đại diện cho bất kỳ loại dữ liệu nào có thể cần các loại chuyển đổi đặc biệt (ký tự, mã hóa, v.v.). hãy giả vờ rằng bạn muốn ghi dữ liệu này vào một tệp.
trước tiên, bạn có thể tạo ByteArrayInputStream , về cơ bản là một cơ chế để cung cấp các byte cho một thứ gì đó theo thứ tự.
sau đó bạn có thể tạo FileOutputStream cho tệp bạn muốn tạo. có nhiều loại InputStreams và OutputStreams cho các nguồn dữ liệu và đích khác nhau.
cuối cùng, bạn sẽ viết InputStream vào OutputStream. trong trường hợp này, mảng byte sẽ được gửi theo thứ tự đến FileOutputStream để ghi. Đối với điều này, tôi khuyên bạn nên sử dụng IOUtils
byte[] bytes = ...;//
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
FileOutputStream out = new FileOutputStream(new File(...));
IOUtils.copy(in, out);
IOUtils.closeQuietly(in);
IOUtils.closeQuietly(out);
và ngược lại
FileInputStream in = new FileInputStream(new File(...));
ByteArrayOutputStream out = new ByteArrayOutputStream();
IOUtils.copy(in, out);
IOUtils.closeQuietly(in);
IOUtils.closeQuietly(out);
byte[] bytes = out.toByteArray();
nếu bạn sử dụng các đoạn mã trên, bạn sẽ cần xử lý các trường hợp ngoại lệ và tôi khuyên bạn nên thực hiện 'đóng' trong một khối cuối cùng.