5 min to read
Java File Reader/Writer
문자/바이트 기반 스트림
java.io 패키지의 주요 클래스 | 설명 |
---|---|
File | 파일 시스템의 파일 정보를 얻기 위한 클래스 |
Console | 콘솔로부터 문자를 입출력하기 위한 클래스 |
InputStream / OuputStream | 바이트 단위 입출력을 위한 최상위 입출력 스트림 클래스 |
FileInputStream / FileOutStream DataInputStream / DataOuputStream ObjectInputStream / ObjectOutputStream PrintStream BufferedInputStream / BufferedOutputStream |
바이트 단위 입출력을 위한 하위 스트림 클래스 |
Reader / Writer | 문자 단위 입출력을 위한 최상위 입출력 스트림 클래스 |
FileReader /FileWriter InputStreamReader / OutputStreamWriter PrintWriter BufferedReader / BufferedWriter |
문자 단위 입출력을 위한 하위 스트림 클래스 |
File - Input/Output Stream
import java.io.File;
import java.io.FileInputStream;
public class FileInputStreamExam {
public static void main(String[] args) {
String path = "C:\\Users\\dkdlw\\Documents\\Scanned Documents\\a.jpg";
File file = new File(path);
try {
FileInputStream fis = new FileInputStream(file);
int data;
while ((data = fis.read()) != -1) {
System.out.write(data);
}
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
//----------------------------------------------------------
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class FileOutputStreamExam {
public static void main(String[] args) {
/*
* 파일을 읽는다.
*/
String originFile = "C:\\Users\\dkdlw\\Documents\\Scanned Documents\\a.jpg";
String targetFile = "C:\\Users\\dkdlw\\Documents\\Scanned Documents\\b.jpg";
File ori_file = new File(originFile);
File tar_file = new File(targetFile);
try {
FileInputStream fis = new FileInputStream(ori_file);
FileOutputStream fos = new FileOutputStream(tar_file);
int data;
byte[] buf = new byte[128];
while ((data = fis.read(buf)) != -1) {
fos.write(buf, 0, data);
}
fis.close();
fos.flush();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
File - Reader/Writer Stream
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
public class FileReaderExam {
public static void main(String[] args) {
String path = "C:\\Users\\dkdlw\\Documents\\Scanned Documents\\temp.txt";
try {
// FileReader fr = new FileReader(path); // 한글이 깨진다.
BufferedReader br = new BufferedReader( // 차선책
new InputStreamReader(
new FileInputStream(path), Charset.forName("UTF-8")));
int data;
char[] buf = new char[128]; // 128byte 의 버퍼
// while ((data = fr.read(buf)) != -1) {
// String strData = new String(buf, 0, data);
// System.out.println(strData);
// }
//
// fr.close();
while ((data = br.read(buf)) != -1) {
String strData = new String(buf, 0, data);
System.out.println(strData);
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//----------------------------------------------------------
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterExam {
public static void main(String[] args) {
String path = "C:\\Users\\dkdlw\\Documents\\Scanned Documents\\tempWr.txt";
File file = new File(path);
try {
// \r : 캐리지리턴 + \n : 라인피드 = 엔터
String data = "문자 저장\n안녕?";
FileWriter fw = new FileWriter(file);
fw.write(data);
fw.flush();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Comments