java 파일 읽고 쓰기
사용자 입력
import java.util.Scanner;
.
.
.
Scanner s = new Scanner(System.in);
String str0 = s.nextLine();
//문자열 넣기
String str1 = s.next();
//띄어쓰기를 인식하여 문자 하나만 넣어줌.
int i = Integer.parseInt(str1);
//숫자라면 문자열로 받고 바꿔준다.
try-catch 문법
컴퓨터 하드웨어의 오동작, 고장으로 인한 응용프로그램 실행 오류가 발생하는 것은 에러라고 하고
프로그램 자체에서 발생하는 오류는 예외라고 한다.
예외의 두 종류
- 실행 예외
: 실행 시 예측할 수 없어서 컴파일 과정에서 검사할 수 없다. - 일반 예외
: 예외가 발생할 가능성이 높아서 컴파일하는 과정에서 해당 예외 처리 코드가 있는지 검사하고 없다면 컴파일 오류가 발생한다.
일반 예외 처리!
try{
(1)
}catch(Exception e){
(2)
}finally{
(3)
}
-
Exception : 예외를 의미. 미리 프로그램의 오류를 예측하고 "Exception"자리에 특정 오류를 넣어주거나 Exception으로 해두어도 된다.
-
(1)부분에는 오류가 발생될 수 있는 부분을 넣어주고, (2)부분에는 오류가 생겼다면 실행할 부분을 넣어준다. (3)부분은 예외와 상관없이 항상 실행할 코드를 넣어준다. (3)은 생략 가능하다.
-
다중 catch도 가능하다.
파일 읽고 쓰기
파일에서 데이터 읽기!
: FileInputStream, Scanner 사용. 예외 처리를 해주어야 한다.
- printStackTrace() : 예외 발생 경로와 메세지를 표시한다.
- hasNextLine()
import java.io.FileInputStream;
import java.util.Scanner;
public class FileInput{
public static void main(String[] args){
FileInputStream inputstream =null;
try{
inputstream = new FileInputStream("src/input.txt");
}catch(Exception e){
e.printStackTrace();
}
Scanner s = new Scanner(inputstream);
while(s.hasNextLine()){
String str = s.nextLine();
System.out.println(str);
}
}
}
파일에 데이터 쓰기!
: FileWriter, Scanner, write()
- writer = new FileWriter("src/output", true);
true를 해주면 전에 입력한 내용이 사라지지 않고 그 아래에 데이터가 저장된다. (안 해주면 내용 덮어쓰기)
import java.io.FileWriter;
import java.util.Scanner;
public class FileOutput{
public static void main(String[] args){
FileWriter writer = null;
try{
writer = new FileWriter("src/output");
}catch(Exception e){
System.out.println("파일 생성 실패!");
}
Scanner s = new Scanner(System.in);
System.out.println("종료하려면 입력없이 Enter");
while(true){
String input = s.nextLine();
if(input == "") {
System.out.println("파일 입력을 종료합니다.");
break;
}
try{
writer.write(input+"\n");
}catch(Exception e){
System.out.println("잘못된 입력이다.");
continue;
}
}
try{
writer.close();
}catch(Exception e){
System.out.println("파일 닫기를 실패함..");
}
}
}
NotePad 만들기 예제
- 사용자가 종료할 때까지 실행해야 하므로 while문에 넣어준다.
import java.io.FileInputStream;
import java.util.Scanner;
import java.io.FileWriter;
public class Note{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
while(true){
System.out.println("사용할 기능의 번호를 입력하시오.");
System.out.println("1. 새 메모 작성");
System.out.println("2. 메모 읽기");
System.out.println("3. 메모장 종료");
int num = 0;
try{
String input = s.nextLine();
num = Integer.parseInt(input);
}catch(Exception e){
System.out.println("잘못된 입력이다.");
}
if(num ==1){
FileWriter writer =null;
System.out.println("메모의 제목을 입력하시오.");
String fileName = s.nextLine();
try{
writer = new FileWriter(fileName);
}catch(Exception e){
System.out.println("파일 생성 실패!");
continue;
}
System.out.println("내용 입력(종료는 입력없이 Enter) : ");
while(true){
String input = s.nextLine();
if(input.equals("")){break;}
try{
writer.write(input+"\n");
}catch(Exception e){
System.out.println("메모 입력 실패!");
}
}
try{
writer.close();
}catch(Exception e){
System.out.println("파일 저장에 실패!!");}
}
else if(num ==2){
FileInputStream inputStream =null;
System.out.println("메모 제목을 입력하시오.");
String fileName = s.nextLine();
try{
inputStream = new FileInputStream(fileName);
}catch(Exception e){
System.out.println("존재하지 않는 메모");
continue;
}
System.out.println(fileName+"메모 내용 출력");
Scanner sc = new Scanner(inputStream);
while(sc.hasNextLine()) System.out.println(sc.nextLine());
sc.close();
}
else if(num ==3){
System.out.println("프로그램을 종료");
break;
}
else{
System.out.println("잘못된 입력임.");
}
}
}
}
코드를 생각하면서 작성했더니 시간이 오래 걸렸다..
그래도 안 까먹을 것 같다ㅎㅎ
Author And Source
이 문제에 관하여(java 파일 읽고 쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@daegari/java-파일-읽고-쓰기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)