자바 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에 따라 라이센스가 부여됩니다.