JAVA

파일저장_Stream

장꾸꾸 2020. 8. 31. 14:47

클라이언트와 서버가 데이터를 주고받는데, 이러한 데이터의 흐름을 Stream이라 한다.

이 스트림은 한 방향으로만 진행되고 보내는 쪽은 보내기만, 받는 쪽은 받기만 한다.(input stream/ output stream)

 

 

실행은 메인 클래스에서!

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		FileTest fileTest = new FileTest();
		fileTest.createFiles();
	}

}

 

FileTest 클래스

 

1st 방법 : 계속 덮어쓰기가 됨

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileTest {
	public void createFiles() {
		FileOutputStream output = null;
		String data = "가나다라 대한민국";
		/****************** 첫 번째 방법 ***********************/
		/** 생성할 파일 이름을 지정 **/
		try {
			output = new FileOutputStream("c:/my/test1.txt");
		
			data = "개구리 소년\r\n";
			output.write(data.getBytes()); // 파일에 저장

			data = "빰빠밤\r\n";
			output.write(data.getBytes()); // 파일에 저장

			data = "즐즐즈릊릊릊르즐\r\n";
			output.write(data.getBytes()); // 파일에 저장
			output.close();
			System.out.println("정상종료");
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

2nd 방법 : 붙여쓰기 가능

		File tempFile = new File("c:/my/test2.txt"); 
		if(tempFile.exists()== true) {			//파일 존재 여부 확인
		}
		 FileWriter fw;		
		 try {
			fw = new FileWriter("c:/my/test2.txt", false); //덮어쓰기 , true 붙여쓰기
			String data = "티라노\r\n";			
			 fw.write(data);		
			 data = "어떤 맛일까? 냠냠\r\n";
			 fw.write(data);			
			 fw.close();
			 System.out.println("정상종료");
		} catch (IOException e) {		
			e.printStackTrace();
		}
		

FileWriter의 기본기능은 덮어쓰기(기본옵션이 false)지만 

생성시에 

		fw = new FileWriter("c:/my/test2.txt", true); 

true를 붙여주면 그 밑에 계속해서 붙여쓰기가 됨