직접적으로 파일을 읽고 쓰는 클래스
문자나 바이트 형식의 문자만 읽거나 쓸 수 있다.
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; while( true ) { 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.print( String.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 |
'DEV > JAVA' 카테고리의 다른 글
io_3 : ObjectInputStream, ObjectOutputStream , 직렬화 (serialization ) (0) | 2019.10.08 |
---|---|
io_2 : DataInputStream, DataOutputStream (0) | 2019.10.07 |
java LinkedList 와 Iterator (0) | 2019.10.04 |
java 현재시간 출력 ( Calendar, SimpleDateFormat ) (0) | 2019.10.04 |
[Java] primitive 타입의 데이터를 자릿수 쪼개서 배열에 담기 (0) | 2019.05.22 |