자바 IO 학습 노트 (8): System 클래스 의 IO 지원
11377 단어 java io
System 은 시스템 클래스 를 나타 내 는데 이것 도 IO 에 일정한 지원 을 해 주 었 다.
System.out
System. out 출력 을 사용 할 때 출력 위 치 를 모니터 에 정의 합 니 다.
FileOutputStream 은 파일 에 위치 하고 System. out 은 화면 에 위치 합 니 다.
OutputStream 을 사용 하여 화면 출력 완료 (PrintStream 은 OutputStream 의 하위 클래스)
1 import java.io.IOException;
2 import java.io.OutputStream;
3
4 public class Test26 {
5 public static void main(String[] args) throws IOException {
6 OutputStream out=System.out;
7 out.write("Hello World!".getBytes());
8 out.close();
9 }
10 }
이것 은 사실 다 태 적 인 표현 이다
System.err
System. err 가 표시 하 는 잘못된 표준 출력 입 니 다. 프로그램 에 오류 가 발생 하면 System. err 를 사용 하여 출력 하면 됩 니 다.
1 public class Test27 {
2 public static void main(String[] args) {
3 String str="Hello World";
4 try{
5 int a=Integer.parseInt(str);
6 }catch(Exception e){
7 System.err.println(e);
8 }
9 }
10 }
근 데 System. out 출력 결과 랑 똑 같 냐 고 물 어보 시 는데 뭐 가 달라 요?
System. out 과 System. err 의 차이
System. in 은 실제로 키보드 의 입력 흐름 으로 그 자체 가 InputStream 형식의 대상 입 니 다. 이 를 통 해 키보드 에서 데 이 터 를 읽 는 기능 을 수행 할 수 있 습 니 다.
InputStream 은 입력 흐름 에 대응 합 니 다. 입력 흐름 은 지 정 된 위치 에서 읽 을 수 있 습 니 다. 이전 에는 FileInputStream 을 파일 에서 읽 었 습 니 다.
1 import java.io.IOException;
2 import java.io.InputStream;
3
4 public class Test28 {
5 public static void main(String[] args) throws IOException {
6 InputStream in=System.in;
7 byte[] b=new byte[1024];
8 int len=in.read(b);
9 System.out.println(new String(b,0,len));
10 }
11 }
byte 배열 로 길 이 를 지정 하지 않 으 면:
1 import java.io.IOException;
2 import java.io.InputStream;
3
4 public class Test29 {
5 public static void main(String[] args) throws IOException {
6 InputStream in=System.in;
7 StringBuilder buf=new StringBuilder();
8 int temp=0;
9 while((temp=in.read())!=-1){
10 char c=(char) temp;
11 if(c=='
')break;
12 buf.append(c);
13 }
14 in.close();
15 System.out.println(buf.toString());
16 }
17 }
그러나 상기 코드 는 큰 문제 가 있 습 니 다. 중국 어 를 입력 하면 ~, 그래서 가장 좋 은 방법 은 한번에 데 이 터 를 메모리 에 넣 고 한꺼번에 모두 꺼 내 는 것 입 니 다. 이 기능 을 실현 하려 면 Buffered Reader 류 를 사용 하여 다음 에 소개 하 겠 습 니 다 ~
입 출력 방향 변경
System. out, System. err, System. in 은 모두 리 셋 기능 이 있 는데 각각 setOut, setErr, setIn 방법 이다.
System. out 재 설정
1 import java.io.File;
2 import java.io.FileNotFoundException;
3 import java.io.PrintStream;
4
5 public class Test30 {
6 public static void main(String[] args) throws FileNotFoundException {
7 File f = new File("d:" + File.separator+"test.txt");
8 System.setOut(new PrintStream(f));
9 String str="This is a test!";
10 System.out.println(str);
11 }
12 }
System. err 재 설정
1 import java.io.ByteArrayOutputStream;
2 import java.io.PrintStream;
3
4 public class Test31 {
5 public static void main(String[] args) {
6 ByteArrayOutputStream out=new ByteArrayOutputStream();
7 System.setErr(new PrintStream(out));
8 System.err.println("Test---------------");
9 System.out.println(out.toString());
10 }
11 }
일반적으로 err 의 방향 을 바 꾸 는 것 을 권장 하지 않 습 니 다. 왜냐하면 이 정 보 는 사용자 가 보기 싫 기 때 문 입 니 다.
System. in 방향 바 꾸 기
1 import java.io.File;
2 import java.io.FileInputStream;
3 import java.io.IOException;
4 import java.io.InputStream;
5
6 public class Test32 {
7 public static void main(String[] args) throws IOException {
8 File f = new File("d:" + File.separator+"test.txt");
9 System.setIn(new FileInputStream(f));
10 InputStream in=System.in;
11 byte[] b=new byte[1024];
12 int len=in.read(b);
13 in.close();
14 System.out.println(new String(b,0,len));
15 }
16 }
일반적으로 가장 많이 사용 하 는 것 은 System. out 의 방향 을 바 꾸 는 것 입 니 다 ~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 IO 학습 노트 (8): System 클래스 의 IO 지원out 출력 을 사용 할 때 출력 위 치 를 모니터 에 정의 합 니 다. err 가 표시 하 는 잘못된 표준 출력 입 니 다. err 를 사용 하여 출력 하면 됩 니 다. err 는 모두 PrintStream 의 실...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.