
InputStream
- abstract int read()
- int read(byte[] b)
- int read(byte[] b, int off, int len)
OutputStream
- abstract void write(int b)
- void write(byte[] b)
- void write(byte[] b, int off, int len)
File(InputStream, OutputSteam) : 파일 대상 입출력
ByteArray(InputStream, OutputSteam) : 메모리 대상 입출력
Piped(InputStream, OutputSteam) : 프로세스 대상 입출력
Audio(InputStream, OutputSteam) : 오디오장치 대상 입출력
File(Reader, Writer) : 파일 대상 입출력
CharArray(Reader, Writer) : 메모리 대상 입출력
Piped(Reader, Writer) : 프로세스 대상 입출력
String(Reader, Writer) : 메모리 대상 입출력
InputStream의 메서드

OutputStream의 메서드

package JavaIOTest;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Arrays;
public class ByteArrayIOTest02 {
public static void main(String[] args) {
byte[] inSrc = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
byte[] outSrc = null;
byte[] temp = new byte[4];
//입출력용 스트림 객체 생성
ByteArrayInputStream bin = new ByteArrayInputStream(inSrc);
//출력용 스트림 객체 생성
ByteArrayOutputStream bout = new ByteArrayOutputStream();
try{
//0보다 크면 읽을 데이터 존재
while(bin.available() > 0) {
//temp배열 크기만큼 한번에 저장
// //이 방식은 배열크기가 고정되어있어 기존에 남아있는데이터도 같이 쓰여질 수 있다
// bin.read(temp);
// bout.write(temp);
//실제 읽어온 byte 수를 반환한다.
int len = bin.read(temp);
//temp배열의 데이터들 중에서 0번째부터 len의 개수만큼 출력한다.
bout.write(temp, 0, len);
System.out.println("temp => " + Arrays.toString(temp));
}
System.out.println();
outSrc = bout.toByteArray();
bin.close();
bout.close();
//출력하기
System.out.println(" inSrc => " + Arrays.toString(inSrc));
System.out.println(" outSrc => " + Arrays.toString(outSrc));
}catch (IOException e) {
}
}
}
package JavaIOTest;
import javax.swing.*;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
public class FileIOTest03 {
public static void main(String[] args) {
//사용자로부터 출력할 단을 입력받아 구구단을 파일로 출력하는 프로그램 작성하기
//출력할 파일명 : 'd:d_other/gugudan.txt'
FileOutputStream fout = null;
try {
File file = new File("D:/D_Other/gugudan.txt");
fout = new FileOutputStream(file);
Scanner sc = new Scanner(System.in);
System.out.print("출력할 단을 입력하세요>> ");
int dan = sc.nextInt();
for(int i = 1; i <= 9; i++) {
String str = dan + " * " + i + " = " + dan*i + '\n';
byte[] bStrArr = str.getBytes("UTF-8");
fout.write(bStrArr);
}
System.out.println("작업 완료!!");
}catch (IOException e) {
}
finally {
if(fout!= null) try{fout.close();}catch (IOException e) {}
}
}
}