자바I/O 자바의 I/O 예제 [2]

황제낙엽 2007.07.14 09:50 조회 수 : 292 추천:162

sitelink1  
sitelink2  
sitelink3  
sitelink4  
sitelink5  
sitelink6  
1. 예제 소스 환경 : Tomcat 5.0, JDK1.6.0




1. File (파일과 디렉토리)
    1) 현재 컴퓨터의 "c:/My Utilities" 디렉토리에 관한 정보를 제공한다. 디렉토리에 있는 파일들과 하위 디렉토리에 관한 정보를 출력한다.

·미리보기 | 소스복사·
  1. import java.io.File;   
  2.   
  3. public class FileDirDemo1 {   
  4.   
  5.     public static void main(String args[]) {   
  6.         String directory = "c:/My Utilities";   
  7.         File fl = new File(directory);   
  8.        
  9.         if(fl.isDirectory()) {   
  10.             System.out.println("검색 디렉토리 : "+directory);   
  11.             System.out.println("=================================");   
  12.             String s[] = fl.list();   
  13.             for(int i=0; i
  14.                 File f = new File(directory + "/" + s[i]);   
  15.                 if(f.isDirectory()) {   
  16.                     System.out.println(s[i]+" : 디렉토리");   
  17.                 } else {   
  18.                     System.out.println(s[i]+" : 파일");   
  19.                 }   
  20.             }   
  21.         } else {   
  22.             System.out.println("지정한 "+ directory +"는 디렉토리가 아님");   
  23.         }   
  24.     }   
  25.        
  26. }  

    2) "c:/My Utilities" 파일에 관한 정보를 출력한다. File 클래스에서 제공하는 메소드를 사용하여 파일과 관련된 정보를 출력한다.
·미리보기 | 소스복사·
  1. import java.io.File;   
  2.   
  3. public class FileDirDemo2 {   
  4.     static void p(String s) {   
  5.         System.out.println(s);   
  6.     }   
  7.        
  8.     public static void main(String sgrs[]) {   
  9.         File fl = new File("c:/My Utilities");   
  10.        
  11.         p("파일 이름 : " + fl.getName());   
  12.         p("파일 경로 : " + fl.getPath());   
  13.         p("절대 경로 : " + fl.getAbsolutePath());   
  14.         p(fl.exists() ? "파일 존재" : "파일 없슴");   
  15.         p(fl.canWrite() ? "수정 가능" : "수정 불가능");   
  16.         p(fl.canRead() ? "읽기 가능" : "읽기 불가능");   
  17.         p(fl.isDirectory() ? "디렉토리" : "디렉토리아님");   
  18.         p(fl.isFile() ? "파일" : "파일 아님");   
  19.         p(fl.isAbsolute() ? "절대 경로" : "상대 경로");   
  20.         p("1970년 1월 1일부터 파일이 마지막 수정된 날짜까지의 밀리초 : " + fl.lastModified());   
  21.         p("파일의 크기 : " + fl.length() + " Bytes");   
  22.     }   
  23. }  

2. FileWriter 클래스와 FileReader 클래스
    문자열을 파일로 저장하고, 저장된 파일을 읽어들여 화면에 파일의 내용을 출력하는 프로그램이다. 첫번째 프로그램은 실행명령의 매개 변수로 파일이름을 받아 파일을 생성하고 파일에 문자열을 출력한다. 두 번째 프로그램은 실행 명령의 매개변수로부터 파일이름을 받아들여 파일을 열고 파일의 내용을 읽어 화면에 출력하는 프로그램이다.
·미리보기 | 소스복사·
  1. import java.io.FileWriter;   
  2.   
  3. public class FileWriterDemo {   
  4.     public static void main(String args[]) throws Exception {   
  5.         String source = "어른이 되어서야 진정한 돈의 가치를 알게 되었는데n"  
  6.             + "만약 좋아하는 사람에게 어떤일이 생겼을때n"           
  7.             + "아무것도 생각하지 말고 잠시 쉬라고 말할 수 있을 정도는n"  
  8.             + "왠지 가지고 싶잖아n";   
  9.        
  10.         char intxt[] = new char[source.length()];   
  11.         source.getChars(0, source.length(), intxt, 0);   
  12.         //입력 문자열을 intxt 문자 배열에 저장   
  13.        
  14.         FileWriter fw = new FileWriter("c:/FileWriterDemo.txt");   
  15.         fw.write(intxt);   
  16.         //문자 배열의 내용을 파일에 출력   
  17.         fw.close();   
  18.     }   
  19. }  
·미리보기 | 소스복사·
  1. import java.io.FileReader;   
  2.   
  3. public class FileReaderDemo {   
  4.     public static void main(String args[]) throws Exception {   
  5.     //입력시 발생할 수 있는 예외를 허용한다.   
  6.     FileReader fr = new FileReader("c:/FileWriterDemo.txt");   
  7.     //매개변수로 파일이름을 받아들여 FileReader 객체 생성   
  8.     int i;   
  9.     while((i = fr.read()) != -1) {   
  10.         System.out.print((char)i);   
  11.         //파일의 끝까지 한 문자씩을 읽어들여 출력   
  12.     }   
  13.     fr.close();   
  14.     }   
  15. }  

3. BufferedWriter 클래스와 BufferedReader 클래스
    위의 FileWriter 클래스와 FileReader 클래스의 예제를 BufferedWriter 클래스와 BufferedReader 클래스를 이용하여 재작성하였다.
·미리보기 | 소스복사·
  1. import java.io.BufferedWriter;   
  2. import java.io.FileWriter;   
  3.   
  4. public class BufferedWriterDemo {   
  5.     public static void main(String args[]) throws Exception {   
  6.         String source = "사람들은 저마다 무한한 수의 상자를 가지고 있다.n"  
  7.             + "하지만 그 모든 상자들을 열어보기엔 인간의 생은 너무나 짧다.n"           
  8.             + "만약 누군가 옆에 있어준다면, 단지 옆에만 있어준다면n"  
  9.             + "그리고 함께 싸워줄 수만 있다면... 그런 사람이 있다면...n";   
  10.         char intxt[] = new char[source.length()];   
  11.         source.getChars(0, source.length(), intxt, 0);   
  12.         //입력하고자 하는 문자열을 문자 배열 intxt에 저장   
  13.         FileWriter fw = new FileWriter("c:/BufferedWriterDemo.txt");   
  14.         BufferedWriter bw = new BufferedWriter(fw);   
  15.         //버퍼를 사용한 객체 bw 생성   
  16.        
  17.         bw.write(intxt);   
  18.         //문자 배열의 내용을 파일에 출력   
  19.         bw.close();   
  20.     }   
  21. }  
·미리보기 | 소스복사·
  1. import java.io.BufferedReader;   
  2. import java.io.FileReader;   
  3.   
  4. public class BufferedReaderDemo {   
  5.     public static void main(String args[]) throws Exception {   
  6.         FileReader fr = new FileReader("c:/BufferedWriterDemo.txt");   
  7.         BufferedReader br = new BufferedReader(fr);   
  8.         //버퍼를 이용한 입력을 위해 br 객체 생성   
  9.         String s;   
  10.         while((s = br.readLine()) != null) {   
  11.             System.out.println(s);   
  12.             //파일의 끝까지 한 라인씩 출력   
  13.         }   
  14.         br.close();   
  15.     }   
  16. }  

4. PrintWriter 클래스
    PrintWriter 객체를 생성한 다음 print(), println() 두 개의 메소드를 사용하여 다양한 데이터를 출력하는 프로그램이다.
·미리보기 | 소스복사·
  1. import java.io.PrintWriter;   
  2.   
  3. public class PrintWriterDemo {   
  4.     public static void main(String args[]) throws Exception {   
  5.         PrintWriter pw = new PrintWriter(System.out);   
  6.         //표준 출력(모니터 출력)을 의미하는   
  7.         //System.out(PrintWriter 객체)을 이용하여   
  8.         //객체 pw를 생성   
  9.         pw.print("알기 쉽게 해설한 자바!n");   
  10.         pw.println('A');   
  11.         pw.println(500 + 500);   
  12.         pw.println(40000L);   
  13.         pw.println(12.34f);   
  14.         pw.println(12.34);   
  15.         pw.println(new Integer("1999"));   
  16.         pw.close();   
  17.     }   
  18. }  
번호 제목 글쓴이 날짜 조회 수
103 J2SE 5.0 - 제네릭(GENERIC) 황제낙엽 2007.08.27 389
102 Cookie Test file 황제낙엽 2007.08.27 280
101 쿠키 유틸리티 클래스 CookieBox 만들기 file 황제낙엽 2007.08.27 420
100 통합을 위한 요소 기술, Java와 XML 황제낙엽 2007.08.27 419
99 중복 로그인 제한 기법에 대하여 황제낙엽 2007.08.23 457
98 interface와 abstract클래스의 차이점 황제낙엽 2007.07.28 520
97 javadoc - The Java API Documentation Generator 황제낙엽 2007.07.25 574
96 자바의 I/O 예제 [3] file 황제낙엽 2007.07.16 454
» 자바의 I/O 예제 [2] file 황제낙엽 2007.07.14 292
94 계층형(답변형) 게시판 로직(최근 답변 하단으로) 황제낙엽 2007.07.11 434
93 J2SE 5.0 - 주석(annotation,표식) 개요 황제낙엽 2007.07.03 393
92 include문과 logging 설정 황제낙엽 2007.03.23 551
91 [BPP] 게시판 페이징 로직 분석 - M1.1 - 샘플 다운로드 및 사용법 file 황제낙엽 2007.06.15 440
90 [BPP] 게시판 페이징 로직 분석 - (5) 페이지 계산 file 황제낙엽 2007.06.15 438
89 [BPP] 게시판 페이징 로직 분석 - (4) 쿼리문의 자동완성 file 황제낙엽 2007.06.14 489
88 [BPP] 게시판 페이징 로직 분석 - (3) 검색과 정렬 file 황제낙엽 2007.06.13 354
87 [BPP] 게시판 페이징 로직 분석 - (2) 간단한 페이징 기법 황제낙엽 2007.06.08 826
86 [BPP] 게시판 페이징 로직 분석 - (1) 클래스 목록 file 황제낙엽 2007.06.06 393
85 문자열의 앞뒤space제거처리 성능체크 황제낙엽 2007.06.03 418
84 간단한 서블릿 예제들 file 황제낙엽 2007.05.12 323