코딩 개발/Java

Java - 디렉토리 자동생성, 파일 자동 생성, 파일 내용 자동 변경

호소세 2023. 10. 19. 10:15
728x90
반응형

https://pabeba.tistory.com/126

 

Java - File Class에 대한 간단한 예제

Java를 이용하여 운영체제 위에 있는 폴더와 파일에 접근하는 법을 알아보겠습니다. (아주 간단한 것들만 있으니 참고 부탁드립니다.) 더 많은 정보는 API 문서에 많습니다. https://docs.oracle.com/javase

pabeba.tistory.com

 

이전에도 디렉터리와 파일 만드는 것에 대하여 작성하면서 실전에 사용하고 싶고 폴더 생성 자동화 프로그램을 만들어 보고 싶다고 이야기했습니다.

그것을 드디어 실전에 사용해 보았습니다. ㅠㅠ

복습 차원에서 다시 한번 알아보도록 하겠습니다.

 

디렉터리(폴더) 자동 생성하기

// 디렉토리 생성
for (int i = 1; i < 11; i++) {
	StringBuffer dir = new StringBuffer(
			"C:\\hosose\\workspace\\blog");
	dir.append(String.format("%03d", i));
	dir.append("directory");
	File directory = new File(dir.toString());
	if (!directory.exists()) {
		directory.mkdir();
		System.out.println(dir + "생성 완료");
	}
}

for 문을 사용해서 여러 개의 폴더를 생성해 보았습니다.

1. 디렉토리 이름을 dir 변수에 지정하고, (예시 : C:\hosose\workspace)

2. File Class 객체를 생성합니다.

3. 디렉토리디렉터리  존재유무를 확인하고, mkdir() 메서드를 이용하여  디렉터리를 생성합니다.

 

결과

디렉토리 들이 잘 완성되었습니다.

 

파일 자동 생성

이번에는 파일을 생성해 보겠습니다. txt 파일을 각 디렉터리마다 생성해 보겠습니다.

// 파일 생성
for (int i = 1; i < 11; i++) {
	StringBuffer dir = new StringBuffer(
			"C:\\hosose\\workspace\\blog");
	dir.append(String.format("%03d", i));
	dir.append("directory\\file");
	dir.append(String.format("%03d", i));
	dir.append(".txt");
	File file = new File(dir.toString());
	try {
		if (file.createNewFile()) {
			System.out.println(dir + " 파일 생성 성공");
		} else {
			System.out.println("파일이 이미 존재합니다.");
		}
	} catch (IOException e) {
		e.printStackTrace();
	}
}

1. 파일의 경로를 지정합니다. 아까 저장한 디렉토리 입니다.(예시 : C:\hosose\workspace\blog001directory)

2. File Class 객체를 생성합니다.

3. createNewFile() 메서드를 이용하여 파일을 생성하는데 신기하게도 파일의 존재 유무 판단도 해줍니다.

보시면 디렉터리 숫자에 맞는 txt 파일이 생성되었죠?

 

파일 내용 추가하기

반복되는 내용이 저장될 때는 하나하나 수정하기 번거로우니까

BufferedWriter 객체를 이용하여 내용을 작성하면 편합니다.

 

// 파일 내용 추가
for (int i = 1; i < 11; i++) {
	StringBuffer dir = new StringBuffer(
			"C:\\hosose\\workspace\\blog");
	dir.append(String.format("%03d", i));
	dir.append("directory\\file");
	dir.append(String.format("%03d", i));
	dir.append(".txt");
	try {
		BufferedWriter writer = new BufferedWriter(new FileWriter(dir.toString()));
		writer.write("호소세 블로그 화이팅!");
		writer.close();
		System.out.println("파일에 내용이 성공적으로 쓰였습니다.");
	} catch (IOException e) {
		e.printStackTrace();
	}
}

1. 파일 경로 설정합니다.

2. BufferedWriter객체 생성합니다.

3. write() 메서드를 이용하여 넣고 싶은 내용을 작성합니다

4. close() 메서드를 이용하여 객체를 닫아줍니다.

 

파일마다 내용이 잘 들어가 있는 것을 확인할 수 있습니다.

 

소감

직접 실전에 사용하여 시간을 많이 단축할 수 있기에 무조건 자동화는 사용해야 된다고 생각합니다.

개발자는 귀찮은 것을 싫어해야 하고 귀찮은 것에 대한 해결책을 만들면 좋다고 생각합니다.

반응형