package com.green.fileio;
import java.io.FileWriter;
import java.io.IOException;
public class FileTest01 {
public static void main(String[] args) throws IOException {
//바이트 스트림, 문자스트림
//Reader, Writer(문자스트림)
//출력스트림만 파일이 존재하지 않으면 자동으로 생성 후 처리
FileWriter fw=new FileWriter("test.txt");//추상클래스라 안된다.
//예외처리를 안하면 오류가 발생
//예외처리 : 프로그램이 정상적으로 종료하기 위해
//예외처리 대신 main에 throws IOException 추가
fw.write('가');
fw.write('나');
fw.write("다람쥐\n");
fw.write("오늘의 주인공은 바로바로바로바로~~\n");
fw.write("오 수 민~!!!\n");
fw.close();
System.out.println("파일 저장 완료되었습니다.");
}//main
}//class
파일 저장 완료되었습니다.
만들고 자바 프로젝트 접어서 새로고침후 열면 text.txt파일이 생긴다.
가나다람쥐
오늘의 주인공은 바로바로바로바로~~
오 수 민~!!!
package com.green.fileio;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileCopy {
public static void main(String[] args) throws IOException {
//파일복사
FileReader fr=new FileReader("input.txt");
FileWriter fw=new FileWriter("output.txt");
int data;
while((data=fr.read()) != -1) {
fw.write(data);
}
//-1은 스트림이 마지막에 도달 했을때의 값
fw.close();
fr.close();
System.out.println("파일 복사가 완료되었습니다.");
}//main
}//class
package com.green.fileio;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class FileTest02 {
public static void main(String[] args) throws IOException {
//읽어주는거 Reader
FileReader fr=new FileReader("test.txt");
int data;
while ((-1!=(data=fr.read()))) {
System.out.println();
}
fr.close();
}
}
만들고 자바 프로젝트 접어서 새로고침후 열면 input파일이 생긴다.
이 파일에 텍스트 데이터를 저장하고 다시 실행하면 복사되어 Output파일에 같은 내용이 생김
자바 프로젝트 파일안에 이미지 파일을 저장하고 그 이미지를 이클립스 하단으로 출력하기
package com.green.fileio;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopy02 {
public static void main(String[] args) throws IOException {
FileInputStream fis= new FileInputStream("다운로드.jpg");
FileOutputStream fos =new FileOutputStream("다운로드_copy.jpg");
int data;
//while 파일 한글자만 읽지말고 끝까지 다읽으라고 넣는다.
while((data=fis.read()) != -1) {
fos.write(data);
}
fis.close();
fos.close();
System.out.println("완료");
}
}
package com.green.fileio;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class FileTest02 {
public static void main(String[] args) throws IOException {
//읽어주는거 Reader
FileReader fr=new FileReader("test.txt");
int data;
while ((-1!=(data=fr.read()))) {
System.out.println();
}
fr.close();
}
}
다음과 같이 이미지가 복사되어 출력된다.
로또번호를 키보드로 입력받아 파일에 저장하기
package com.green.lotto;
import java.io.IOException;
public class MyLotto645 {
public static void main(String[] args) throws IOException {
Lotto lotto=new Lotto();
lotto.run();//메서드 호출
}
}
package com.green.lotto;
import java.io.DataOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.time.LocalDate;
import java.util.Scanner;
public class Lotto {
int no;
LocalDate date;
int[] nums=new int[7];
public int getNo() {
return no;
}
public void setNo(int no) {
this.no=no;
}
public LocalDate getDate() {
return date;
}
public void setData(LocalDate date) {
this.date=date;
}
public int[] getNums() {
return nums;
}
public void setNums(int[] nums ) {
this.nums=nums;
}
Scanner in=new Scanner (System.in);
public void run() throws IOException {
// TODO Auto-generated method stub
while(true) {
displayMenu();
int menuNo = in.nextInt();
process(menuNo);
}//in.close;
}
private void process(int menuNo) throws IOException {
switch(menuNo) {
case 1://번호등록
inputNum();
break;
case 2:
displayList();
break;
case 3:
analysus();
break;
case 4:
System.out.println("프로그램을 종료합니다.");
System.exit(0);//0은 정상적으로 프로그램 종료
break;
default:
System.out.println("잘못 입력 하셨습니다. ");
}
}
private void analysus() {
// TODO Auto-generated method stub
System.out.println("AI가 번호를 분석을 진행중입니다.");
}
String fileName="lotto.dat";
private void displayList() throws IOException {
// TODO Auto-generated method stub
System.out.println("리스트를 출력합니다. ");
FileReader fr=new FileReader(fileName);
int data; //'\n'이것은 한줄만 출력할때
while((data=fr.read())!= -1) {
System.out.print((char)data);
}
fr.close();
}
private void inputNum() throws IOException {
// TODO Auto-generated method stub
System.out.println("등록처리를 실행합니다.");
// 키보드로 입력 받아서 내용을 파일에 저장
System.out.println("등록할 회차를 입력하십시오.");
System.out.print("입력 > ");
no=in.nextInt();//회차번호
System.out.println("추첨날짜 8자리를 입력하십시오ex)20220831");
System.out.println("입력 > ");
int inDay=in.nextInt();
int year = inDay/10000; //20220831 -> 2022
int month = inDay%10000/100; //20220831 -> 8
int dayOfMonth = inDay%100;//20220831 -> 31
date=LocalDate.of(year, month, dayOfMonth);
System.out.println(date);
nums=new int[7];//로또번호6 +보너스1
for(int i=0; i<6; i++) {
System.out.println(i+1+"번째 로또 번호를 입력하십시오.");
System.out.print("입력 > ");
nums[i]=in.nextInt();
}
System.out.println("보너스 번호를 입력하십시오.");
System.out.print("입력 > ");
nums[nums.length-1]=in.nextInt();
//파일에 저장해보자!
/*
FileWriter fw=new FileWriter("lotto.dat",true);
String str=no+" "+date+" ";
for(int i=0; i<6; i++) {
str+=nums[i]+" ";
}
str+=nums[6]+"\n";
fw.write(str);
fw.flush();//출력스트림에만 존재
fw.close();
}
*/
//다시 파일을 저장해보자!
FileOutputStream fos = new FileOutputStream(fileName);
DataOutputStream dos = new DataOutputStream(fos);
dos.writeInt(no);
dos.writeUTF(date.toString());
for(int num:nums) {
dos.writeInt(num);
}
dos.close();
fos.close();
}
private void displayMenu(){
System.out.println("\n________________________");
System.out.println("1.등록 2.리스트 3.분석 4.종료");
System.out.println("=====메뉴를 선택하세용가리=====");
System.out.println("________________________");
System.out.println("선택 > ");
}
}//class