SSISO Community

시소당

자바의 I/O 예제 [2]

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.     }   


출처 : http://www.omnibuscode.com/zeroboard/zboard.php?id=seeyou_programing_java
&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=120

639 view

4.0 stars