이제부터 파일의 입출력에 대해서 다루겠따 ^^
우선은 파일의 출력부터 공부해보자.
예제와 설명
import java.io.*;
public class ReadFile {
public static void main(String[] args) {
ReadFile readFile = new ReadFile();
File file = new File("ReadFile.java");//클래스파일과 동일한 경로에 있는 ReadFile로 접근하기위해 인스턴트 변수 file에 저장
if(file.exists()){ //파일존재확인
readFile.metaData(file); //metaData 메서드 호출
readFile.fileContents(file); //fileContents 메서드 호출
} else
System.out.println("파일이 존재하지 않습니다.");
}
public void metaData(File file){
System.out.println("파일 이름: " + file.getName());
System.out.print("읽기: " + file.canRead()+ " / "); //파일읽기 가능여부 확인 true면 참 false면 거짓
System.out.println("쓰기: " + file.canWrite()); //파일쓰기 가능여부 확인 true면 참 false면 거짓
System.out.println("파일 절대경로: " + file.getAbsolutePath());
System.out.println("파일 상대경로: " + file.getPath());
}
public void fileContents(File file){
if(!file.canRead()) //파일이 없으면 readFile.filecontents로 넘어감
return;
//FileInputStream fileIs = null; //File.io.FileInputStream인스턴트 변수선언
FileReader fr = null;//FileInputStream 바이트 기반대신 문자 형식을 사용해 한글깨짐방지
System.out.println("파일 내용");
try{
//fileIs = new FileInputStream(file); //File.io.FileInputStream인스턴트 변수선언
fr = new FileReader(file);//한글깨짐방지 인스턴트변수 선언
while(true){ //파일의 내용을 끝까지 읽어드리는 반복문
int i = fr.read();
if(i == -1)
break;
System.out.print((char)i);
}
}catch(FileNotFoundException fne){
System.out.println("FileIODemo1.java_Line35_FileNotFoundException이 발생했습니다.");
}catch(IOException ioe){
System.out.println("FileIODemo1.java_Line37_IOException이 발생했습니다.");
}finally{
if(fr != null){
try{
fr.close();
}catch(IOException ioe){
System.out.println("ReadFile.java_Line43_IOException이 발생했습니다.");
}
}
}
}
}
복수문자를 읽어오는 코드
import java.io.*;
public class ReadFile {
public static void main(String[] args) {
ReadFile readFile = new ReadFile();
File file = new File("ReadFile.java");//클래스파일과 동일한 경로에 있는 ReadFile로 접근하기위해 인스턴트 변수 file에 저장
if(file.exists()){ //파일존재확인
readFile.metaData(file); //metaData 메서드 호출
readFile.fileContents(file); //fileContents 메서드 호출
} else
System.out.println("파일이 존재하지 않습니다.");
}
public void metaData(File file){
System.out.println("파일 이름: " + file.getName());
System.out.print("파일 읽기: " + file.canRead()+ " / ");
System.out.println("파일 쓰기: " + file.canWrite());
System.out.println("파일 절대경로: " + file.getAbsolutePath());
System.out.println("파일 상대경로: " + file.getPath());
}
public void fileContents(File file){
if(!file.canRead()) //파일이 없으면 readFile.filecontents로 넘어감
return;
//FileInputStream fileIs = null; //File.io.FileInputStream인스턴트 변수선언
FileReader fr = null;//FileInputStream 바이트 기반대신 문자 형식을 사용해 한글깨짐방지
System.out.println("파일 내용");
try{
fr = new FileReader(file);
char[] buffer = new char[512]; // 파일에서 512개의 문자를 한번에 읽어오기
while(fr.read(buffer) != -1) // 읽어오기
System.out.print(buffer);
}catch(FileNotFoundException fne){
System.out.println("FileIODemo1.java_Line35_FileNotFoundException이 발생했습니다.");
}catch(IOException ioe){
System.out.println("FileIODemo1.java_Line37_IOException이 발생했습니다.");
}finally{
if(fr != null){
try{
fr.close();
}catch(IOException ioe){
System.out.println("ReadFile.java_Line43_IOException이 발생했습니다.");
}
}
}
}
}
복수 바이트를 읽어오는 코드
import java.io.*;
public class ReadFile {
public static void main(String[] args) {
ReadFile readFile = new ReadFile();
File file = new File("ReadFile.java");//클래스파일과 동일한 경로에 있는 ReadFile로 접근하기위해 인스턴트 변수 file에 저장
if(file.exists()){ //파일존재확인
readFile.metaData(file); //metaData 메서드 호출
readFile.fileContents(file); //fileContents 메서드 호출
} else
System.out.println("파일이 존재하지 않습니다.");
}
public void metaData(File file){
System.out.println("파일 이름: " + file.getName());
System.out.print("파일 읽기: " + file.canRead()+ " / ");
System.out.println("파일 쓰기: " + file.canWrite());
System.out.println("파일 절대경로: " + file.getAbsolutePath());
System.out.println("파일 상대경로: " + file.getPath());
}
public void fileContents(File file){
if(!file.canRead()) //파일이 없으면 readFile.filecontents로 넘어감
return;
//FileInputStream fileIs = null; //File.io.FileInputStream인스턴트 변수선언
FileInputStream fis = null;
System.out.println("파일 내용");
try{
fis = new FileInputStream(file);
int readCount = 0;
byte[] buffer = new byte[512]; //// 파일에서 512개의 바이트를 한번에 읽어오기
while((readCount = fis.read(buffer)) != -1)
/ System.out.write(buffer, 0, readCount);
}catch(FileNotFoundException fne){
System.out.println("FileIODemo1.java_Line35_FileNotFoundException이 발생했습니다.");
}catch(IOException ioe){
System.out.println("FileIODemo1.java_Line37_IOException이 발생했습니다.");
}finally{
if(fr != null){
try{
fr.close();
}catch(IOException ioe){
System.out.println("ReadFile.java_Line43_IOException이 발생했습니다.");
}
}
}
}
}
'컴퓨터프로그래밍 > JAVA' 카테고리의 다른 글
JAVA 구축후 테스트하기 (0) | 2013.07.31 |
---|---|
JAVA 환경구축하기 (0) | 2013.07.31 |
Java - 37.다양한 스트림 (0) | 2011.08.09 |
Java - 36.자바I/O개요 (0) | 2011.08.08 |
Java - 35.예외 처리 개요 (0) | 2011.08.08 |