버그 해결을 위한 모든 질문을 던져
0 votes
199 views
package hw12;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

public class 실습12 {

    public static void main(String[] args) {
        ArrayList<Student> students = new ArrayList<Student>();
        students.add(new UnderGraduate("100","Lee","사물인터넷",21,"테니스"));
        students.add(new UnderGraduate("101","Kim","지능시스템",21,"요가"));
        students.add(new UnderGraduate("102","Park","사이버보안",24,"댄스"));
        students.add(new UnderGraduate("103","Kim","ICT융합엔터테인먼트",21,"야구"));
        students.add(new Graduate("G100","Jung","정보시스템",26,"석사","인공지능"));
        students.add(new Graduate("G101","Lee","정보시스템",26,"석사","보안"));
        students.add(new Graduate("G200","Han","정보컴퓨터공학",28,"박사","임베디드시스템"));

        saveDataToFile(students, "output.dat");
        System.out.println(loadDataFromFile("output.txt"));

        saveObjectToFile(students, "output.dat");
        System.out.println(loadObjectFromFile("output.dat"));

    }
    public static void saveDataToFile(ArrayList<Student> students, String fileName)  {
    	
    }
    public static ArrayList<Student> loadDataFromFile(String fileName) {
    	
    
    	return null;
    }

    public static void saveObjectToFile(ArrayList<Student> students, String fileName) {
    	FileOutputStream fos = null;
		ObjectOutputStream oos = null;

		try {
			fos = new FileOutputStream("object.dat");
		} catch (FileNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		try {
			oos = new ObjectOutputStream(fos);
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
try{
			
			// object.dat 파일의 객체 아웃풋스트림을 생성한다.
			fos = new FileOutputStream("object.dat");
			oos = new ObjectOutputStream(fos);
			
			// 해당 파일에 3개의 객체를 순차적으로 쓴다
			oos.writeObject(students);
			
			
			// object.dat 파일에 3개의 객체 쓰기 완료.
			System.out.println("객체를 저장했습니다.");
		
		}catch(Exception e){
			
			e.printStackTrace();
		
		}finally{
			
			// 스트림을 닫아준다.
			if(fos != null) try{fos.close();}catch(IOException e){}
			if(oos != null) try{oos.close();}catch(IOException e){}	
		}



    }
    public static ArrayList<Student> loadObjectFromFile(String fileName) {
    	FileInputStream fis = null;
		ObjectInputStream ois = null;


try{
			
			// object.dat 파일로 부터 객체를 읽어오는 스트림을 생성한다.
			fis = new FileInputStream("object.dat");
			ois = new ObjectInputStream(fis);
			
			// ObjectInputStream으로 부터 객체 하나씩 읽어서 출력한다.
			// (UserClass) 로 형변환을 작성해야 한다.
			// System.out.println 으로 객체의 구현된 toString() 함수를 호출한다.


		}catch(Exception e){
			e.printStackTrace();
		}finally{
			
			// 스트림을 닫아준다.
			if(fis != null) try{fis.close();}catch(IOException e){}
			if(ois != null) try{ois.close();}catch(IOException e){}
		}
return null;

	    	
    }
}


class Student{
	
	String id;
	String name;
	String dept;
	int age;
	public Student(String id, String name, String dept, int age) {
		super();
		this.id = id;
		this.name = name;
		this.dept = dept;
		this.age = age;
	}
	
	
}

class UnderGraduate extends Student{
	public UnderGraduate(String id, String name, String dept, int age, String circle) {
		super(id, name, dept, age);
		this.circles = circles;
		
	}


String circles;

public String toString() {
	
	return String.format("%s %s %s %d %s", id, name, dept, age, circles);
	
}
}


class Graduate extends Student{
		
String degree;
String major;

public Graduate(String id, String name, String dept, int age, String degree, String major) {
	super(id, name, dept, age);
	this.degree = degree;
	this.major = major;
}

public String toString() {
	return String.format("%s %s %s %d %s %s", id, name, dept, age, degree, major);
}
}
  • 방식1: ArrayList 컬렉션 객체에 저장된 개별 객체 정보를 텍스트 파일(filename)에 저장하고, 파일에 저장된 정보를 읽어와서 ArrayList 컬렉션 객체를 재구성하여 반환함
    • public static void saveDataToFile(ArrayList students, String fileName)
    • public static ArrayList loadDataFromFile(String fileName)
  • 방식2ObjectOutputStream 객체를 이용하여 ArrayList 객체를 파일(fileName)에 저장하고, ObjectInputStream 객체를 이용하여 파일에 저장된 ArrayList 객체를 읽어옴
    • public static void saveObjectToFile(ArrayList students, String fileName)
    • public static ArrayList loadObjectFromFile(String fileName)
asked (2 point) , 199 views

1 답변

0 votes
숙제는 따로 금액 주시면 잘 해드립니다.
answered (194 point)
요건 쉬운건데 얼마죠
4 비트 코인만 받겠습니다
네ㅘㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

462 질문
607 answers
598 댓글
70,944 users