이전 글:
표준입출력
프로그램에서 사용하는 표준입출력은 간단하게 키보드 -> 프로그램 -> 출력 프린트 라고 생각하면 쉬울것같습니다. 쉬운 개념이니 간단하게 코드만 보겠습니다. package Test01; import java.io.IOException;
kwaksh2319.tistory.com
이번에 표준 입출력이 바이트 단위의 문자 입출력을 해보겠습니다.
아래 코드를 보면
InputStream 바이트 단위 입력 스트림 최상위 클래스
outputStream바이트 단위 출력 스트림 최상위 클래스
스트림 단위를 사용하는 클래스입니다.
package Test01;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String [] args) {
//InputStream 바이트 단위 입력 스트림 최상위 클래스
//outputStream바이트 단위 출력 스트림 최상위 클래스
FileInputStream fis=null;
try {
fis=new FileInputStream("input.txt"); //while로 할경우 -1까지 조건을 만들어서 -1 출력시 while을 끝내면됨
int i=fis.read();
System.out.println((char)i);
i=fis.read();
System.out.println((char)i);
i=fis.read();
System.out.println((char)i);
} catch (IOException e) {//filenotfoundexception 보다 상위 exception
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
fis.close();
} catch (Exception e2) {
// TODO: handle exception
}
}
System.out.println("end");
System.out.println("================================================");
//read byte
try(FileInputStream fisByte=new FileInputStream("input2.txt")){
int i;
byte[]bs= new byte[10];//byte
while((i=fisByte.read(bs))!=-1) {
for(byte b:bs) {
System.out.print(b);
}
System.out.println();
for(int k=0;k<i;k++) {
System.out.print((char)bs[k]);
}
System.out.println();
}
}catch (IOException e) {
e.printStackTrace();
}
System.out.println("end");
System.out.println("================================================");
//ouput stream
try(FileOutputStream fos=new FileOutputStream("output.txt",true)) {
fos.write(65);
fos.write(66);
fos.write(67);
} catch (Exception e) {
// TODO: handle exception
}
System.out.println("================================================");
byte[] bs=new byte[26];
byte data=65;
for(int i=0;i<bs.length;i++) {
bs[i]=data;
data++;
}
try(FileOutputStream fos=new FileOutputStream("alpha.txt",true)) {
fos.write(bs);
int ch;
} catch (Exception e) {
// TODO: handle exception
}
}
}
먼저 input.txt 파일을 자바에 만들어서 넣은뒤에 FileInputStream을 통해서 read()를 해서 출력이 가능합니다.
FileInputStream fis=null;
try {
fis=new FileInputStream("input.txt"); //while로 할경우 -1까지 조건을 만들어서 -1 출력시 while을 끝내면됨
int i=fis.read();
System.out.println((char)i);
i=fis.read();
System.out.println((char)i);
i=fis.read();
System.out.println((char)i);
}
그렇다면 바이트 단위로 읽어오겠습니다.
아래 코드 byte 를 할당하여 input2.txt byte에 담을수 잇는 갯수만큼 읽어서 출력을 합니다.
//read byte
try(FileInputStream fisByte=new FileInputStream("input2.txt")){
int i;
byte[]bs= new byte[10];//byte
while((i=fisByte.read(bs))!=-1) {
for(byte b:bs) {
System.out.print(b);
}
System.out.println();
for(int k=0;k<i;k++) {
System.out.print((char)bs[k]);
}
System.out.println();
}
}
사실 스트림은 크게 어려운게 없어서 이런 클래스만 존재하는구나 하고 넘어가는게 좋을것같습니다.
이번에 아래에 write stream에 관련 클래스입니다. write함수를 통해 쓰고 마찬가지로 byte를 이용하여 write하는것이 가능합니다.
//ouput stream
try(FileOutputStream fos=new FileOutputStream("output.txt",true)) {
fos.write(65);
fos.write(66);
fos.write(67);
} catch (Exception e) {
// TODO: handle exception
}
System.out.println("================================================");
byte[] bs=new byte[26];
byte data=65;
for(int i=0;i<bs.length;i++) {
bs[i]=data;
data++;
}
try(FileOutputStream fos=new FileOutputStream("alpha.txt",true)) {
fos.write(bs);
int ch;
} catch (Exception e) {
// TODO: handle exception
}
'프로그래밍언어 > JAVA' 카테고리의 다른 글
<JAVA>보조 스트림 (0) | 2020.12.12 |
---|---|
<JAVA>문자 단위 스트림 (0) | 2020.12.12 |
<JAVA>표준입출력 (0) | 2020.12.12 |
<JAVA>입출력 스트림 (0) | 2020.12.12 |
<JAVA>예외처리-3 (0) | 2020.12.11 |