import java.io.File;
public class FileBasics {
public void createFile() {
// File 객체 생성
File file = new File("example.txt");
File directory = new File("myDirectory");
}
}
public class FileConstructors {
public void demonstrateConstructors() {
// 문자열 경로로 생성
File file1 = new File("test.txt");
// 부모 경로와 자식 경로로 생성
File file2 = new File("myDir", "test.txt");
// File 객체와 하위 경로로 생성
File parent = new File("myDir");
File file3 = new File(parent, "test.txt");
}
}
public class FileInfo {
public void getFileInfo(File file) {
// 파일 존재 여부
boolean exists = file.exists();
// 파일 이름
String name = file.getName();
// 파일 경로
String path = file.getPath();
String absolutePath = file.getAbsolutePath();
// 파일 크기
long size = file.length();
// 최종 수정 시간
long lastModified = file.lastModified();
}
}
public class FileAttributes {
public void checkAttributes(File file) {
// 읽기/쓰기/실행 권한
boolean canRead = file.canRead();
boolean canWrite = file.canWrite();
boolean canExecute = file.canExecute();
// 파일/디렉토리 여부
boolean isFile = file.isFile();
boolean isDirectory = file.isDirectory();
// 숨김 파일 여부
boolean isHidden = file.isHidden();
}
}
public class FileOperations {
public void manipulateFile() throws IOException {
File file = new File("newFile.txt");
// 파일 생성
boolean created = file.createNewFile();
// 파일 삭제
boolean deleted = file.delete();
// 프로그램 종료 시 삭제
file.deleteOnExit();
}
}
public class DirectoryOperations {
public void manipulateDirectory() {
File dir = new File("newDir");
// 디렉토리 생성
boolean created = dir.mkdir();
// 여러 단계의 디렉토리 생성
boolean createdMultiple = dir.mkdirs();
// 디렉토리 내용 조회
String[] contents = dir.list();
File[] files = dir.listFiles();
}
}
public class FileFiltering {
public void filterFiles() {
File dir = new File("myDir");
// 파일 이름으로 필터링
String[] txtFiles = dir.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
});
// Lambda 표현식 사용
String[] pdfFiles = dir.list((dir1, name) -> name.endsWith(".pdf"));
}
}
public class AdvancedFiltering {
public void filterWithFileFilter() {
File dir = new File("myDir");
// FileFilter를 사용한 필터링
File[] largeFiles = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File file) {
return file.length() > 1000000; // 1MB 이상
}
});
// Lambda 표현식 사용
File[] recentFiles = dir.listFiles(file ->
System.currentTimeMillis() - file.lastModified() < 24 * 60 * 60 * 1000);
}
}
public class RecursiveFileSearch {
public void searchDirectory(File directory) {
if (directory.exists() && directory.isDirectory()) {
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
searchDirectory(file);
} else {
// 파일 처리 로직
processFile(file);
}
}
}
}
}
private void processFile(File file) {
// 파일 처리 로직 구현
}
}
public class FileCopyUtility {
public void copyFile(File source, File destination) throws IOException {
if (!source.exists()) {
throw new FileNotFoundException("Source file not found");
}
if (!destination.getParentFile().exists()) {
destination.getParentFile().mkdirs();
}
try (FileInputStream fis = new FileInputStream(source);
FileOutputStream fos = new FileOutputStream(destination)) {
byte[] buffer = new byte[8192];
int length;
while ((length = fis.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}
}
}
}
Java의 File 클래스에 대해 자세히 정리하고 요약해드리겠습니다.
import java.io.File;
public class FileBasics {
public void createFile() {
// File 객체 생성
File file = new File("example.txt");
File directory = new File("myDirectory");
}
}
public class FileConstructors {
public void demonstrateConstructors() {
// 문자열 경로로 생성
File file1 = new File("test.txt");
// 부모 경로와 자식 경로로 생성
File file2 = new File("myDir", "test.txt");
// File 객체와 하위 경로로 생성
File parent = new File("myDir");
File file3 = new File(parent, "test.txt");
}
}
public class FileInfo {
public void getFileInfo(File file) {
// 파일 존재 여부
boolean exists = file.exists();
// 파일 이름
String name = file.getName();
// 파일 경로
String path = file.getPath();
String absolutePath = file.getAbsolutePath();
// 파일 크기
long size = file.length();
// 최종 수정 시간
long lastModified = file.lastModified();
}
}
public class FileAttributes {
public void checkAttributes(File file) {
// 읽기/쓰기/실행 권한
boolean canRead = file.canRead();
boolean canWrite = file.canWrite();
boolean canExecute = file.canExecute();
// 파일/디렉토리 여부
boolean isFile = file.isFile();
boolean isDirectory = file.isDirectory();
// 숨김 파일 여부
boolean isHidden = file.isHidden();
}
}
public class FileOperations {
public void manipulateFile() throws IOException {
File file = new File("newFile.txt");
// 파일 생성
boolean created = file.createNewFile();
// 파일 삭제
boolean deleted = file.delete();
// 프로그램 종료 시 삭제
file.deleteOnExit();
}
}
public class DirectoryOperations {
public void manipulateDirectory() {
File dir = new File("newDir");
// 디렉토리 생성
boolean created = dir.mkdir();
// 여러 단계의 디렉토리 생성
boolean createdMultiple = dir.mkdirs();
// 디렉토리 내용 조회
String[] contents = dir.list();
File[] files = dir.listFiles();
}
}
public class FileFiltering {
public void filterFiles() {
File dir = new File("myDir");
// 파일 이름으로 필터링
String[] txtFiles = dir.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
});
// Lambda 표현식 사용
String[] pdfFiles = dir.list((dir1, name) -> name.endsWith(".pdf"));
}
}
public class AdvancedFiltering {
public void filterWithFileFilter() {
File dir = new File("myDir");
// FileFilter를 사용한 필터링
File[] largeFiles = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File file) {
return file.length() > 1000000; // 1MB 이상
}
});
// Lambda 표현식 사용
File[] recentFiles = dir.listFiles(file ->
System.currentTimeMillis() - file.lastModified() < 24 * 60 * 60 * 1000);
}
}
public class RecursiveFileSearch {
public void searchDirectory(File directory) {
if (directory.exists() && directory.isDirectory()) {
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
searchDirectory(file);
} else {
// 파일 처리 로직
processFile(file);
}
}
}
}
}
private void processFile(File file) {
// 파일 처리 로직 구현
}
}
public class FileCopyUtility {
public void copyFile(File source, File destination) throws IOException {
if (!source.exists()) {
throw new FileNotFoundException("Source file not found");
}
if (!destination.getParentFile().exists()) {
destination.getParentFile().mkdirs();
}
try (FileInputStream fis = new FileInputStream(source);
FileOutputStream fos = new FileOutputStream(destination)) {
byte[] buffer = new byte[8192];
int length;
while ((length = fis.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}
}
}
}
이러한 File 클래스의 기능을 적절히 활용하면 효율적인 파일 시스템 관리가 가능합니다.