직접적으로 파일을 읽고 쓰는 클래스

문자나 바이트 형식의 문자만 읽거나 쓸 수 있다.



File 클래스     : 읽거나 쓰고자 하는 파일과 연결하여 관리


FileReader     : 파일을 읽는 클래스

FileWriter      : 파일을 쓰는 클래스


FileReader, FileWriter                    : char 배열이나 String 형태의 문자를 읽고 쓴다.

FileInputStream, FileOutputStream  : 바이트 형식의 데이터(0~255 까지의 데이터) 를 읽고 쓴다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
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 Example {
    public static void main(String[] args) {
 
        /**********************************************************************************************************/
        // File 클래스
        /**********************************************************************************************************/
        File file1 = new File("file1.txt");
        
        System.out.println( file1.exists() );        // 현재 파일,디렉토리가 있는가
        System.out.println( file1.getName() );       // 파일 이름을 가져옴
        System.out.println( file1.length() );        // 파일의 크기를 가져옴
        System.out.println( file1.getParent() );     // 상위 디렉토리명 조회 ( 없으면  null리턴)
        System.out.println( file1.isFile() );        // 파일인가?
        System.out.println( file1.isDirectory() );   // 디렉토리 인가?
        
 
        
        // 1.  디렉토리 하위의 파일명들을 조회
        File dir = new File("anse");
        File[] files = dir.listFiles();
        
        for(int i=0; i<files.length; i++) {
            System.out.println(files[i].getName());
        }
        
        
        
        // 2. 파일, 디렉토리 생성과 삭제
        File file = new File("house.txt");
        File dir1 = new File("house");
        
        try {
            file.createNewFile();        // file생성
        } catch (IOException e) {
            e.printStackTrace();
        }
        dir1.mkdir();                    // dir 생성
        
        file.delete();                    // 삭제
        dir1.delete();                    // 삭제
        
        
        /**********************************************************************************************************/
        /* FileReader,FileWriter  */
        /**********************************************************************************************************/
        
        // 1. 파일을 한글자씩 읽기
        try {
 
            File file2 = new File("anse//java");
            FileReader fr = new FileReader(file2);
            
            int c;
            whiletrue ) {
                
                c = fr.read();    // read() : 문자열의 끝을 만나면 -1 을 return 
                if(c == -1) {
                    break;
                }
                System.out.print(String.valueOf((char)c));
            }
            fr.close();
            
            
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        
        
        // 2. 한꺼번에 파일 일기 (버퍼에 문자열을 담아서)
        try {
            File file3 = new File("anse//java");
            FileReader fr = new FileReader(file3);
            
            char[] charArray = new char[64];
            fr.read(charArray);
            
            System.out.printString.valueOf(charArray).trim() );
            
            fr.close();
            
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
 
        // 3. 파일에 문자 쓰기
        try {
            FileWriter fw = new FileWriter("anse//java");
            char[] charArary = {'J','B','A'};
            
            fw.write(charArary);
            
            fw.close();
            
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
 
 
        /**********************************************************************************************************/
        // FileInputStream, FileOutputStream ///////////////////////
        /**********************************************************************************************************/
 
        // 1. 파일에 입력 (FileOutputStream )
        byte[] data = {77,111,114};
        try {
            FileOutputStream fos = new FileOutputStream("anse//java");
            fos.write(data);
            fos.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
 
        // 2. 파일 읽기 (FileInputStream)
        byte[] data1 = new byte[64];
        try {
            FileInputStream fis = new FileInputStream("anse//java");
            fis.read(data1);
            fis.close();
            
            for(int i=0; i<data.length; i++) {
                if(data1[i] == 0) {
                    break;
                }
                System.out.print(data[1+ ',');
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
    }
}
 
cs


+ Recent posts