-
728x90
스트림: 데이터를 주고 받을 수 있는 통로, 사용용도에 따라 굉장히 다양한 스트림이 존재
입력 스트림: InputStream, FileInputStream, BufferedInputStream, Reader, BufferedReader 등
출력 스트림: OutputStream, FileOutputStream, BufferedOutputStream, Writer, BufferedWriter 등
FileOutputStream outputStream= new FileOutputStream("파일 주소");통로를 열어 파일에 접근, 해당 파일이 없으면 파일 생성
for(int i=1;i<11;i++){String data=i+"번째 라인";outputStream.write(data.getBytes());}파일에 작성, byte 단위로 작성
import java.io.FileOutputStream;import java.io.IOException;
public class Ex02 {public static void main(String[] args) throws IOException {FileOutputStream outputStream= new FileOutputStream("주소");for(int i=1;i<11;i++){String data=i+"번째 라인";outputStream.write(data.getBytes());}outputStream.close(); //닫기}}FileWriter 사용
import java.io.FileWriter;import java.io.IOException;public class Ex02 {public static void main(String[] args) throws IOException {FileWriter fw= new FileWriter("주소");for(int i=1;i<11;i++){String data=i+"번째 라인";fw.write(data);}fw.close(); //닫기}}byte를 사용하지 않아도 된다.
PrintWriter 사용
import java.io.IOException;import java.io.PrintWriter;public class Ex02 {public static void main(String[] args) throws IOException {PrintWriter pw= new PrintWriter("주소");for(int i=1;i<11;i++){String data=i+"번째 라인";pw.println(data);}pw.close(); //닫기}}println 사용 가능FileInputStream 사용
import java.io.FileInputStream;import java.io.IOException;
public class Ex03 {public static void main(String[] args) throws IOException {byte[]b=new byte[1024];FileInputStream fis= new FileInputStream("주소");fis.read(b);System.out.println(new String(b));fis.close();}}byte로 읽음
BufferedReader 사용
import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;
public class Ex03 {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new FileReader("주소"));while(true){String line=br.readLine();if(line==null){break;}System.out.println(line);}}}더 간단하다.
파일 읽고 복사하기
import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.io.PrintWriter;public class copy {public static void main(String[] args)throws IOException {BufferedReader br = new BufferedReader(new FileReader("읽을 파일 주소"));PrintWriter pw= new PrintWriter("복사된 파일 주소");while(true){String line=br.readLine();if(line==null){break;}pw.println(line);}pw.close();br.close();}}입력스트림을 이용하여 파일을 읽고, 출력 스트림을 이용하여 읽은 내용을 쓴다.
이미지 파일 복사하기
import java.io.FileInputStream;import java.io.FileOutputStream;
public class Ex05 {public static void main(String[] args)throws Exception {FileInputStream fis= new FileInputStream("이미지 파일");FileOutputStream fos= new FileOutputStream("복사된 파일");while(true){int b=fis.read();if(b==-1){break;}fos.write(b);}fis.close();fos.close();}}이미지는 FileInputStream을 이용하여 byte를 이용하여 파일을 복사한다.
728x90반응형'공부' 카테고리의 다른 글
자바 쓰레드 (0) 2022.07.27 네트워크 스트림 (0) 2022.07.26 자바 예외 처리 (0) 2022.07.26 7계층 HTTP 프로토콜 (0) 2022.07.26 자바 중복 문자 제거 (0) 2022.02.14