Sponsored By
















여의도 대교반점 오향장육 & 중국냉면





'ETC > 먹방' 카테고리의 다른 글

2019. 08. 13. 월. 점심.  (0) 2019.08.13
2019. 08. 12. 월. 점심.  (0) 2019.08.12
2019. 08. 08. 목. 저녁.  (0) 2019.08.08
2019. 08. 07. 수. 저녁.  (0) 2019.08.07
2019. 08. 04. 일. 저녁.  (0) 2019.08.05

 

파일처리 하는 방식으로 파일복사 하는 방법임.

 

 

 

 

 

 

 

00. 'org.txt' 파일을 하나 만든다.







01. 프로젝트에 '마우스 오른쪽 버튼'-> 'New'-> 'Folder' 를 클릭해 새로운 폴더를 만든다.







02. data 라고 지어보자.







03. 'org.txt' 파일을 넣자







04. Reader 로 일고 writer 로 data폴더 밑에 copy 이름으로 복사하자.








05. 정상출력을 확인할 수 있다.








06. 새로고침을 누르면 copy 된것을 확인할 수 있다.

 

 

 

 

 

 

문자 단위처리 하는 'Reader', 'Writer' 사용방법을 알아보겠다.

 

 

 

 

 

 

 

 

00. msg 변수의 String 값을 넣어주고 FileWriter 와 FileReader 객체를 만들어서 사용.







01. 결과 값.

 

 

 

 

 

 

데이터를 UTF 로 처리하는 방법임.

 

 

 

자세한 메뉴얼은 http://download.oracle.com/javase/8/docs/api 참고. !!

 

 

 

 

 

00. 'writeUTF'메소드를 사용해주면 된다.







01. 결과값

 

 

 

 

 

 

Byte단위로 처리하는 'FileInputStream', 'FileOutputStream' 을 사용하는 방법임.

 

 

 

 

 

ㅁ. 간단히 개념을 보겠다.

 

1. 물리적 메모리 구조

 

1) struct {

int a ; //4B

char b ; //1B

int c ; //4B

char d ; //1B

  } 

sizeof(test)  -> 16B  ( ∵물리적메모리의 가로가 4B 이므로) 4B - 1B (3B은 버림) - 4B - 1B

 

2) struct {

int a ; //4B

int c ; //4B

char b ; //1B

char d ; //1B

  } 

sizeof(test)  -> 12B  (∴이렇게 배치하는게 좋다.)

 

3) struct {

int a ; //4B

int c ; //4B

char b ; //1B

char d ; //1B

short e ; // 2B

  } 

sizeof(test)  -> 12B (∴ 가독성을 위해 이렇게 배치하는게 가장 좋다.)

 

 

 

2. 파일 처리속도 중

main()

{

 

a(); //A

b(); // B

c(); //C {syso"Hello"}

d(); //D

 

}  -> A B 만 출력했는데 C에서 에러 안날 곳이 없으면 출력버퍼의 문제임. 

출력버퍼가 완전히 지워져야 flush ; 비울때 까지 동작 안함

따라서, 써라명령후 flush로 비우고 해줘야함.

 

 

 

ㅁ. stream ; 순서가있는물결의흐름

 

 

 

ㅁ. 용어

1. 바이트스트림 ; 읽고쓰고할때 input/output stream 으로 처리

2. 문자(char)스트림 ; reader writer 로 처리

 

 

 

ㅁ. 읽고 쓰고 하는게 -> 메모리/파일/파이프

※파이프 ; 읽음과 동시에 사라지게하는 메모리

 

 

 

ㅁ. 파일을 읽고쓸때는 항상 예외처리를 해줘야한다.

 

 

 

 

 

 

 

 

 

 

00_1. 'data.txt' 라는 파일을 만들고 거기에다 'for문'을 이용하여 기록해서 출력하겠다.







00_2. 출력 결과







01. 읽어오개할때 다른파일 이름을 넣으면 당연히 에러가 발생한다.

 

 

 

 

 

 

※. 코드

 

 

import java.io.FileInputStream;

import java.io.FileOutputStream;

 

public class Test {

 

public static void main(String[] args) {

 

 

// Stream 중 바이트처리

FileInputStream in = null;

FileOutputStream out = null;

 

// 메모리가 가득차서 못쓸수도 있고 없어서 못읽어 올 수도 있기 때문에 예외처리 사용 

try {

out = new FileOutputStream("data.txt", false);

 

for (int i = 1; i <= 10; i++)

{

out.write(i);  // data.txt 라는 파일에 쓰는 작업을 한 것임.

}

 

out.flush();  // 다 써지고나서 수행시키기 위함.

 

//읽어오기위함

in = new FileInputStream("data2.txt");

 

int c;  // 읽은 숫자 저장하기위한 변수선언

 

while( ( c= in.read() ) != -1 )  // -1 은 파일이 끝나는부분을 나타냄

{

System.out.println(c);

}

 

 

 

 

} catch (Exception e) {

 

System.out.println("Error : " + e.getMessage());

 

} finally

{ // 자원해제(반납)시켜주는 일 할 것임.

try {

if( in != null)

{

in.close();

}if( out != null){

out.close();

}

 

} catch (Exception e2) {

 

}

}// finally

 

 

 

 

}// main

 

}// Main Class

 

 

 

 

 



Sponsored By















+ Recent posts