objectstreamdemo.java

来自「java 教程相应的代码 全是自己写的内附注释 很容易看明白的」· Java 代码 · 共 73 行

JAVA
73
字号
package demo.chapter.file;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ObjectStreamDemo {

	public static void main(String[] args) {

		System.out.println("请输入文件名:");
		Scanner scan = new Scanner(System.in);
		String filename = scan.nextLine();

		 User[] users = {
		 new User("Frank", 101),
		 new User("Jack", 102),
		 new User("May", 103)
		 };
		
		 writeObjectsToFile(users, filename);

		User[] users = readObjectsFromFile(filename);

		for (User user : users) {
			System.out.printf("%s\t%d%n", user.getName(), user.getNumber());
		}
	}

	public static void writeObjectsToFile(Object[] objs, String filename) {
		File file = new File(filename);

		try {
			ObjectOutputStream output = new ObjectOutputStream(
					new FileOutputStream(file));
			for (Object obj : objs) {
				output.writeObject(obj);
			}
			output.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static User[] readObjectsFromFile(String filename) {
		File file = new File(filename);

		List<User> result = new ArrayList<User>();

		try {
			FileInputStream fileInputStream = new FileInputStream(file);
			ObjectInputStream input = new ObjectInputStream(fileInputStream);

			while (fileInputStream.available() > 0) {
				result.add((User) input.readObject());
			}
			input.close();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

		return result.toArray(new User[result.size()]);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?