728x90
※코딩 테스트
- 자료 구조/알고리즘 문제해결 형식
- API 구현 형식
- 과제 형식
문제 해결 과정 : 요구사항이해 -> 설계/검증 -> 기능 구현 -> 결과
자바 입출력과 스트림
스트림
자바에서 모든 입출력은 스트림(stream)을 통해서 이루어짐
표준 입출력
package test15;
public class SystemInTest {
public static void main(String[] args) {
/*
1. 표준 입출력
PrintStream 클래스 out -> 표준출력 스트림(System.out.println()메소드)
InputStream 클래스 in -> 표준입력 스트림(System.in)
OutputStream 클래스 err -> 표준 오류 출력 스트림
*/
System.out.println("알파벳 여러 개를 쓰고 [Enter]를 누르세요.");
int i;
// 문자 1개 입력받기(바이트 단위임으로 한글은 깨져서 나옴)
// try {
// i = System.in.read();
// System.out.println(i);
// System.out.println((char)i);
// } catch (IOException e) {
// e.printStackTrace();
// }
// 문자 여러개를 입력 받기
try {
// while((i = System.in.read()) != '\n') {
while((i = System.in.read()) != -1) {
System.out.println(i);
System.out.println((char)i);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
==
System.out.println("알파벳 여러 개를 쓰고 [Enter]를 누르세요.");
InputStream in = System.in;
int i;
try {
while((i = in.read()) != '\n') {
System.out.println((char)i);
}
} catch (Exception e) {
e.printStackTrace();
}
바이트 단위 스트림
package test15;
import java.io.FileInputStream;
import java.io.IOException;
public class FileinputStreamTest1 {
public static void main(String[] args) throws IOException {
/*
바이트 단위 스트림
1) 입력 스트림(InputStream) 상속
2) 출력 스트림(OutputStream) 상속
3) 파일 단위 처리 스트림(FileInputStream)
파일로부터 바이트 단위로 읽어 들이는 스티름 입력 클래스(스트림 생성)
그림, 오디오, 비디오, 텍스트 파일 등 모든 종류의 파일을 읽을 수 있음
*/
FileInputStream fis = new FileInputStream("D:\\java_basic\\workspace\\javastudy\\src\\test15\\SystemInTest.java");
// System.out.println(fis.read());
// System.out.println(fis.read());
// System.out.println(fis.read());
//
// System.out.println((char)fis.read());
// System.out.println((char)fis.read());
// System.out.println((char)fis.read());
int i; //읽은 byte를 저장해놓은 변수
while((i = fis.read()) != -1) {
System.out.print((char)i);
}
}
}
한글이 깨져서 결과가 나타남
package test15;
import java.io.FileInputStream;
import java.io.IOException;
public class FileinputStreamTest1 {
public static void main(String[] args) throws IOException {
/*
바이트 단위 스트림
1) 입력 스트림(InputStream) 상속
2) 출력 스트림(OutputStream) 상속
3) 파일 단위 처리 스트림(FileInputStream)
파일로부터 바이트 단위로 읽어 들이는 스티름 입력 클래스(스트림 생성)
그림, 오디오, 비디오, 텍스트 파일 등 모든 종류의 파일을 읽을 수 있음
*/
//파일 스트림 생성
FileInputStream fis = new FileInputStream("D:\\java_basic\\workspace\\javastudy\\src\\test15\\SystemInTest.java");
// System.out.println(fis.read());
// System.out.println(fis.read());
// System.out.println(fis.read());
//
// System.out.println((char)fis.read());
// System.out.println((char)fis.read());
// System.out.println((char)fis.read());
int i; //읽은 byte를 저장해놓은 변수
while((i = fis.read()) != -1) {
// System.out.print((char)i);
System.out.write(i);
}
fis.close(); //파일스트림닫기
}
}
한글이 깨지지 않고 결과가 나타남
※파일 경로
//파일경로 표시(절대 경로)
// FileInputStream fis = new FileInputStream("D:\\java_basic\\workspace\\javastudy\\src\\test15\\SystemInTest.java");
//D:\\java_basic\\workspace\\javastudy\\src\\test15\\SystemInTest.java
// FileInputStream fis = new FileInputStream("D:/java_basic/workspace/javastudy/src/test15/SystemInTest.java");
//D:/java_basic/workspace/javastudy/src/test15/SystemInTest.java
//파일경로 표시(상대 경로)
//프로젝트가 기준 최상위 src
//파일 스트림 생성
FileInputStream fis = new FileInputStream("src/test15/SystemInTest.java");
package test15;
import java.io.FileInputStream;
import java.io.IOException;
//byte 배열로 읽기
public class FileinputStreamTest2 {
public static void main(String[] args) throws IOException {
/*
바이트 단위 스트림
1) 입력 스트림(InputStream) 상속
2) 출력 스트림(OutputStream) 상속
3) 파일 단위 처리 스트림(FileInputStream)
파일로부터 바이트 단위로 읽어 들이는 스티름 입력 클래스(스트림 생성)
그림, 오디오, 비디오, 텍스트 파일 등 모든 종류의 파일을 읽을 수 있음
*/
FileInputStream fis = new FileInputStream("src/test15/input2.txt");
//읽어 온 byte수 저장할 배열 지정
byte [] bs = new byte[10];
int i;
while((i = fis.read(bs)) != -1) {
for(byte b : bs) {
System.out.print((char)b);
}
System.out.println(" : " + i + "바이트 읽음");
}
System.out.println("끝");
fis.close();
}
}
package test15;
import java.io.FileInputStream;
import java.io.IOException;
//byte 배열로 읽기
public class FileinputStreamTest2 {
public static void main(String[] args) throws IOException {
/*
바이트 단위 스트림
1) 입력 스트림(InputStream) 상속
2) 출력 스트림(OutputStream) 상속
3) 파일 단위 처리 스트림(FileInputStream)
파일로부터 바이트 단위로 읽어 들이는 스티름 입력 클래스(스트림 생성)
그림, 오디오, 비디오, 텍스트 파일 등 모든 종류의 파일을 읽을 수 있음
*/
FileInputStream fis = new FileInputStream("src/test15/input2.txt");
//읽어 온 byte수 저장할 배열 지정
byte [] bs = new byte[10];
int i;
while((i = fis.read(bs)) != -1) {
// for(byte b : bs) {
// System.out.print((char)b);
// }
for(int k=0; k<i ;k++) {
System.out.print((char)bs[k]);
}
System.out.println(" : " + i + "바이트 읽음");
}
System.out.println("끝");
fis.close();
}
}
package test15;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamTest1 {
public static void main(String[] args) throws IOException {
//파일 단위 처리 스트림(FileOutputStream) 클래스
//파일로 저장(내보내기)하는 스트림을 생성하는 클래스
String source = "src/test/SystemInTest.java"; //읽어온 파일(원본)
String target = "src/test/SystemInTest.txt"; //저장(대상)할 파일
FileInputStream fis = new FileInputStream(source);
FileOutputStream fos = new FileOutputStream(target);
}
}
728x90
'KDT > Java' 카테고리의 다른 글
240307 Java 입출력 스트림 3, 내부 클래스 1 (0) | 2024.03.07 |
---|---|
240306 Java 입출력과 스트림 2 (0) | 2024.03.06 |
240131 Java - 자바 입출력 (0) | 2024.01.31 |
240129 Java - 날짜와 시간을 다루는 클래스 (0) | 2024.01.29 |
241025 Java - 예외 2 (0) | 2024.01.25 |