반응형
빨간부분에서 파일의 확장자 명이 없으면 디렉토리(폴더) 로 생각한다
코드 보면서 어떻게 사용하는지 확인하자.
public static void main(String[] args) throws Exception{
File dir = new File("c:Temp/Dir");
File file1= new File("c:Temp/File1.txt");
File file2= new File("c:Temp/File2.txt");
if(!dir.exists()) {
// 존재 하는지 여부를 물어보고 존재하지 않다면 만들겠다.
dir.mkdir(); // 새로운 디렉토리 생성
}
if(!file1.exists()) {
// 존재 하는지 여부를 물어보고 존재하지 않다면 만들겠다.
file1.createNewFile(); // 새로운파일 생성
}
if(!file2.exists()) {
// 존재 하는지 여부를 물어보고 존재하지 않다면 만들겠다.
file2.createNewFile();
}
File temp = new File("C:Temp/File2");
//날짜 포멧을 원하는 포멧으로 변경
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd- a HH:mm");
//temp 디렉토리에 포함된 파일 및 서브 디렉토리목록 전부파일 배열로 리턴
File[] contents = temp.listFiles();
System.out.println("날짜 \t\t\t 시간 \t\t 형태 \t\t 크기 \t\t 이름");
System.out.println("========================================");
for(File file : contents) {
System.out.print(sdf.format(new Date(file.lastModified())));
//디렉토리인지 여부를 확인
if(file.isDirectory()) {
//디렉토리이면 아래 문장 호출
System.out.print("\t <DIR> \t\t\t"+file.getName());
}else{
//아니라면 아래문장 호출
System.out.print("\t\t"+file.length());
System.out.print("\t\t"+file.getName());
}
System.out.println("");
}
}
}
이렇게 사용할 수 있다.
평가 : Board클래스를 만들고 클래스는 아래의 내용을 담고 있다.
이렇게 만든 클래스를 어레이리스트에 담아서 어제배운 배용으로 내보낸뒤에 다시 받아오는 작업을 해보도록 하자
Board 클래스
public class Board implements Serializable{
//각종 내용을 담고 있는 변수들
String songname , singer, songAlbum, songdata;
int num;
//생성자
public Board(int num, String songname, String singer, String songAlbum, String songdata) {
this.num = num;
this.songname = songname;
this.singer = singer;
this.songAlbum = songAlbum;
this.songdata = songdata;
}
//겟터 셋터 생략
}
객체를 만들어줄 클래스이다. 생성자로 만들어줌
메인클래스
public class TestMain {
public static void main(String[] args) {
//객체 생성
Board board = new Board(1, "밤하늘의 별을", "경서", "밤하늘의 별을(2020)", "2020-11-14");
Board board2 = new Board(2, "Dynamite", "방탄소년단", "Dynamite", "2020-08-24");
Board board3 = new Board(3, "Lovesick girls", "BLACKPINK", "THE ALBUM", "2020-10-02");
//어레이리슽 생성
ArrayList<Board> list = new ArrayList<>();
//어레이 리스트에 추가
list.add(board);
list.add(board2);
list.add(board3);
try {
//오브젝트 스트림 생성
ObjectOutputStream ob = new ObjectOutputStream(new FileOutputStream("C:/Temp/board.db"));
//오브젝트클래스로 파일내보내주기
ob.writeObject(list);
ob.flush();
ob.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
//읽어오는 InputStream 생성
ObjectInputStream oi = new ObjectInputStream(new FileInputStream("C:/Temp/board.db"));
try {
//불러오기
ArrayList<Board> list2 = (ArrayList) oi.readObject();
//각종내용 출력
System.out.println(list2.get(0).num + " " + list2.get(0).songname + "\t\t" + list2.get(0).singer + "\t\t"
+ list2.get(0).songAlbum + "\t " + list2.get(0).songdata);
System.out.println(list2.get(1).num + " " + list2.get(1).songname + "\t\t" + list2.get(1).singer + "\t\t"
+ list2.get(1).songAlbum + "\t " + list2.get(1).songdata );
System.out.println(list2.get(2).num + " " + list2.get(2).songname + "\t" + list2.get(2).singer + "\t"
+ list2.get(2).songAlbum + "\t " + list2.get(2).songdata);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
이렇게 해서 오늘 시험도 무사통과.... ㅠ ㅠ 할때는 어떻게 해야할지 몰라 당황했지만... 사실 보면 별거 없다 .. ㅜㅠ
익숙 해지기 위해 더 공부해야 겠지.....
반응형
'아옳옳의 코딩공부 > 아옳옳 자바코딩공부' 카테고리의 다른 글
2021-05-17안드로이드공부(네트워크 프로그래밍) (0) | 2021.05.18 |
---|---|
2021-05-12자바공부(paths 와 path) (1) | 2021.05.12 |
2021-05-10자바공부(파일과 I/O 스트림) (0) | 2021.05.10 |
2021-05-03자바공부(스레드 Thread3) (8) | 2021.05.03 |
2021-04-30자바공부(스레드 Thead2) (0) | 2021.04.30 |