Java/예제
[23.06.01] 문자스트림 FileReader 와 FileWriter을 이용하여 c:\\windows\\system.ini 를 txt 파일로 복사하기
아캔두우잇
2023. 6. 1. 11:54
반응형
package j20230601;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class TextCopy {
public static void main(String[] args) {
File src = new File("c:\\windows\\system.ini"); // 원본 파일 경로명
File dest = new File("c:\\Temp\\system.txt"); // 복사 파일 경로명
// String destParent = dest.getParent();
File destP = new File("c:\\Temp");
int c;
try {
FileReader fr = new FileReader(src); // 파일 입력 문자 스트림 생성
FileWriter fw = new FileWriter(dest); // 파일 출력 문자 스트림 생성
while((c = fr.read()) != -1) { // 문자 하나 읽고
fw.write((char)c); // 문자 하나 쓰고
}
fr.close();
fw.close();
System.out.println( src.getPath()+ "를 " + dest.getPath()+ "로 복사하였습니다.");
// 파일 복사 완료 후 c:\\Temp 폴더의 리스트를 출력
// (파일/폴더명, 크기, 마지막 수정일자 표시)
System.out.println("-----" + dest.getPath() + "의 서브 리스트 입니다.-----");
File[] subFiles = destP.listFiles(); // dest 는 "c:\\Temp\\system.txt" 이니까,
// destP로 줘야 파일과 디렉토리 모두 리스트로 가져올 수 있음
for(int i=0; i<subFiles.length; i++) {
File f = subFiles[i];
long t = f.lastModified(); // 마지막으로 수정된 시간
System.out.print(f.getName());
System.out.print("\t파일 크기: " + f.length()); // 파일 크기
System.out.printf("\t수정한 시간: %tb %td %ta %tT\n",t, t, t, t);
// 월 일 요일 시분초 각각에 해당되는 t객체
}
} catch (IOException e) {
System.out.println("파일 복사 오류");
}
}
}
* listFiles() 는 파일과 디렉터리 경로명을 File[ ] 배열로 리턴할 수 있다.
File[ ] subFiles = destP.listFiles();
반응형