1. 김현희
- JAVA 코드로 TXT파일을 읽어오는 것을 구현하도록 한다.
1-1. 바탕화면에 있는 TXT파일을 읽어 콘솔에 출력하기
package hhkim;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileFilter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class ReadFromFile {
public static void main(String[] args) {
// 수정할 파일의 경로
String filePath = "C:/Users/121A0443/Desktop/CodingTest.txt";
//파일 객체 생성
File file = new File(filePath);
//파일 객체가 존재하고, 또 그것이 파일이면
if (file.exists() && file.isFile()) {
try {
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
// 파일 내용 읽기
StringBuilder content = new StringBuilder();
String line;
/* bufferReader가 한 줄씩 읽어서(readLine메서드) line에 할당한다.
그리고 그것이 null이 아니면
System.out.println("파일 내용은 " + " > " + line + " < " + "입니다.");
를 출력한다.
*/
while ((line = bufferedReader.readLine()) != null) {
System.out.println("파일 내용은 " + " > " + line + " < " + "입니다.");
}
bufferedReader.close(); //반드시 닫아줘야 함.
fileReader.close(); //반드시 닫아줘야 함.
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.err.println("지정된 파일이 존재하지 않거나 파일이 아닙니다.");
}
}
}
console 출력

1-2. 바탕화면에 있는 TXT파일 내용 수정하기
package hhkim;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class ModifyFromFile {
public static void main(String[] args) {
//수정할 파일의 경로
String filePath = "C:/Users/121A0443/Desktop/CodingTest.txt";
// 파일 생성(파라미터로 파일 경로 넣어줌)
File file = new File(filePath);
//주어진 파일이 존재하고, 그것이 파일이면
if (file.exists() && file.isFile()) {
try { //예외 처리를 위한 try~catch 문으로 감싸줌.
// 파일 내용을 읽어온다.
StringBuilder content = new StringBuilder();
/* 파일 내용을 수정. 예를 들어, txt파일을 "Bye Bye!"로 변경한다.
StringBuilder는 기존의 문자열과 호환되지 않기 때문에 toString()으로
문자열을 받아야 한다. */
String modifiedContent = content.toString().replace(content, "코딩 좆같다!");
/* 파일을 다시 쓰기 위한 FileWriter와 BufferedWriter를 사용
FileWriter : 파일을 열어 텍스트 데이터를 쓰기 위한 클래스
주로 텍스트 파일에 데이터를 쓰기 위해 사용된다.
두 클래스를 같이 쓰는 것은 필수적이지는 않지만, 같이 쓴다면 파일 쓰기의 성능을 향상시킬 수 있다. */
FileWriter fileWriter = new FileWriter(file);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
// 수정된 내용을 파일에 쓴다.
bufferedWriter.write(modifiedContent);
bufferedWriter.close(); //사용 후 반드시 닫아야 한다.
fileWriter.close(); //사용 후 반드시 닫아야 한다.
System.out.println("파일이 성공적으로 수정되었습니다.");
} catch (IOException e) {
e.printStackTrace(); //try 블록 내에서 발생한 IOException 예외를 잡아서 처리하는 역할을 한다.
}
}else {
System.out.println("파일이 아닙니다.");
}
}
}
console 출력


2. 나큰솔
package test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class test {
public static void main(String[] args) {
String filePath = "C:\\\\test\\\\test.txt";
File file = new File(filePath);
if(!file.exists())
try {
createFile(filePath);
System.out.println(readFile(file, filePath));;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String input = "";
while(!(input = br.readLine()).equals("STOP")) sb.append(input + "\\n");
updateFile(filePath, sb.toString());
System.out.println(readFile(file, filePath));;
} catch (IOException e) { e.printStackTrace(); }
}
private static String readFile(File file, String filePath) throws IOException {
StringBuilder returnText = new StringBuilder();
int nBuffer;
BufferedReader buffFileReader = new BufferedReader(new FileReader(file));
while((nBuffer = buffFileReader.read()) != -1) returnText.append((char)nBuffer);
buffFileReader.close();
return returnText.toString();
}
private static void updateFile(String filePath, String text) throws IOException {
File file = new File(filePath);
String fileText = readFile(file, filePath);
BufferedWriter bufw = new BufferedWriter(new FileWriter(file));
text = fileText + text;
bufw.write(text, 0, text.length());
bufw.flush();
bufw.close();
}
private static void createFile(String filePath) throws IOException {
System.out.println("CREATEFILE");
int last = filePath.lastIndexOf("\\\\");
String dir = filePath.substring(0, last);
String name = filePath.substring(last + 1, filePath.length());
File dirFolder = new File(dir);
dirFolder.mkdir();
File f = new File(dirFolder, name);
f.createNewFile();
}
}
3. 박경연
3-1. .txt 파일 읽기
package coding_test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class FileReadAndModify {
public static void main(String[] args) {
//검색할 디렉토리 경로를 지정해준다.
String directoryPath = "D:\\\\study_test";
//File 클래스를 사용하여 directoryPath를 기반으로 디렉토리를 나타내는 directory 객체를 생성한다.
File directory = new File(directoryPath);
//directory 디렉토리 내에 있는 모든 파일 및 디렉토리를 나타내는 File 객체 배열을 얻는다.
File[] files = directory.listFiles();
//files 배열의 각 요소인 file에 대한 반복문을 시작한다.
for (File file : files) {
//현재 file이 파일이면서 확장자가 .txt인 경우를 확인한다.
if (file.isFile() && file.getName().endsWith(".txt")) {
try {
//file을 읽을 수 있는 FileInputStream 객체를 생성한다.
FileInputStream fileInputStream = new FileInputStream(file);
//fileInputStream을 UTF-8 문자 인코딩을 사용하는 InputStreamReader로 래핑한다.
//이것은 파일을 텍스트로 읽을 때 사용되며 한글을 제대로 표시하도록 도와준다.
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8"); // UTF-8 인코딩 사용
//inputStreamReader를 BufferedReader로 래핑한다. BufferedReader는 텍스트를 한 줄씩 읽을 수 있도록 해준다.
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
//현재 파일의 이름을 콘솔에 출력한다.
System.out.println("파일: " + file.getName());
//문자열 변수 line을 선언한다.
String line;
//bufferedReader를 사용하여 파일 내용을 한 줄씩 읽어 line 변수에 저장하고, 파일의 끝에 도달할 때까지 반복한다.
while ((line = bufferedReader.readLine()) != null) {
//현재 읽은 행을 콘솔에 출력한다.
System.out.println(line);
}
bufferedReader.close();
inputStreamReader.close();
fileInputStream.close();
//파일 읽기 및 입출력 예외가 발생한 경우 예외 처리를 시작한다.
} catch (IOException e) {
//예외 정보를 콘솔에 출력한다.
e.printStackTrace();
}
}
}
}
}
=====================================================================================
<결과값>
파일: study_file.txt
집갈래욘