'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 |
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