※ 파일 입출력 클래스 사용시 반드시 try-catch 예외처리 필요!
public class Practice {
public static void main(String[] args) {
// [1] 파일 쓰기
// [1.1] 파일 경로
String path = "./src/test1.txt"; //파일의 위치, 절대경로 or 상대경로
// [1.3] 예외처리 (FileNotFoundException)
try {
// [1.2] 파일 출력 FileOutputStream 객체 생성
// - FileOutputStream >> 무조건 일반예외 경고 발생함
FileOutputStream fout = new FileOutputStream(path);
//[1.4] 파일에 쓰기 .write(바이트 데이터)
//[1.5] 문자열의 바이트로 변환 : "문자열".getBytes() >> 무조건 일반예외 발생
fout.write("자바에서 작성한 텍스트입니다.".getBytes());
} catch (FileNotFoundException e) {
System.out.println("파일 또는 경로가 존재하지 않습니다." + e );
} catch (IOException e) {
System.out.println("입출력 도중에 오류가 발생합니다." + e );
}
}
}
// 결과
// 위치 : ./src
// 파일명 : test1.txt
// 내용 : 자바에서 작성한 텍스트입니다.
public class Practice {
public static void main(String[] args) {
// [2] 파일 읽기
// [2.1] 경로 선언
String path = "./src/test1.txt";
// [2.2] 파일 입력 FileInputStream 객체를 생성
// FileInputStream >> 무조건 예외 발생
try {
FileInputStream fin = new FileInputStream(path);
// [2.3] 읽어온 바이트를 저장할 배열 선언
byte[] bytes = new byte[42];
// [2.4] bytes에 읽어오기 : .read( 바이트배열 ); >> 무조건 예외 발생
fin.read(bytes);
// [2.5] new String( 바이트배열 ); 읽어온 바이트를 문자열로 변환
System.out.println(new String(bytes));
} catch (FileNotFoundException e ){
System.out.println("파일 또는 경로가 존재하지 않습니다." + e );
} catch (IOException e){
System.out.println("파일을 읽는데 문제가 발생했습니다." + e);
}
}
}
// 결과
// console : 자바에서 작성한 텍스트입니다.
자바에서 CSV 파일 읽기·쓰기를 편하게 해주는 API들을 제공하는 라이브러리
CSV를 입력하는 클래스
CSV 출력하는 클래스
경로로부터 파일을 읽어오고, 언어에 따라서 인코딩 언어를 설정할 수 있음
List 객체를 CSV로 내보내는 함수
List<String[]> 타입으로 반환하는 함수
public class Practice {
public static void main(String[] args) {
try {
// [1] OpenCSV 라이브러리 사용해보기
// [1.1] 파일 경로 지정
String path = "src/업소List.csv";
// [1.2] FileReader로 파일 읽기모드 객체 만들기 +try·catch 예외처리 + 한글 인코딩
// new FileReader( 경로, Charset.forName(인코딩))
FileReader fileReader = new FileReader(path, Charset.forName("EUC-KR"));
// [1.3] CSV Reader 클래스를 이용하여 읽기모드 객체 읽기
CSVReader csvReader = new CSVReader(fileReader);
// [1.4] .readAll() : List<String[]> 타입으로 반환하는 함수
List<String[]> inData = csvReader.readAll();
// ArrayList : 구현체 // List : 인터페이스
System.out.println(inData);
// [1.5] 반복문
for (int i = 0 ; i < inData.size() ; i++){
String[] row = inData.get(i);
System.out.printf("업소명 : %s, 지정메뉴 : %s \n",row[1],row[3]);
}
}catch (Exception e){
System.out.println("예외발생 " + e);
}
}
}