我理解的Java流基础篇(二)
来源:互联网 发布:交大 汉芯 知乎 编辑:程序博客网 时间:2024/06/03 18:49
认识了Java流,我们就来运用
Java中File,byte[],Object间的转换
1、Object 对象必须是可序列化对象 。
2、可序列化的 Object 对象都可以转换为一个磁盘文件;反过来则不一定成立,只有序列化文件才可以转换为Object对象。
示例:
- import java.io.BufferedOutputStream;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
-
- public class Byte_File_Object {
-
-
-
-
-
- public static byte[] getBytesFromFile(File f) {
- if (f == null) {
- return null;
- }
- try {
- FileInputStream stream = new FileInputStream(f);
- ByteArrayOutputStream out = new ByteArrayOutputStream(1000);
- byte[] b = new byte[1000];
- int n;
- while ((n = stream.read(b)) != -1) {
- out.write(b, 0, n);
- }
- stream.close();
- out.close();
- return out.toByteArray();
- } catch (IOException e) {
- }
- return null;
- }
-
-
-
-
-
- public static File getFileFromBytes(byte[] b, String outputFile) {
- BufferedOutputStream stream = null;
- File file = null;
- try {
- file = new File(outputFile);
- FileOutputStream fstream = new FileOutputStream(file);
- stream = new BufferedOutputStream(fstream);
- stream.write(b);
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- if (stream != null) {
- try {
- stream.close();
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- }
- }
- return file;
- }
-
-
-
-
-
- public static Object getObjectFromBytes(byte[] objBytes) throws Exception {
- if (objBytes == null || objBytes.length == 0) {
- return null;
- }
- ByteArrayInputStream bi = new ByteArrayInputStream(objBytes);
- ObjectInputStream oi = new ObjectInputStream(bi);
- return oi.readObject();
- }
-
-
-
-
-
- public static byte[] getBytesFromObject(Serializable obj) throws Exception {
- if (obj == null) {
- return null;
- }
- ByteArrayOutputStream bo = new ByteArrayOutputStream();
- ObjectOutputStream oo = new ObjectOutputStream(bo);
- oo.writeObject(obj);
- return bo.toByteArray();
- }
- }