입출력 스트림 및 스트림 버퍼 스트림 변환

전환 흐름 : 출력 전환 문자 스트림

문자는 바이트 코드로 스트림에 기입. 효과 문자열 지정된 코드 테이블에 따라 바이트로 변환되는 것 인, 바이트 기록에서 바이트를 사용하여 스트림.

변환 흐름 개요

의 OutputStreamWriter : 문자 출력 스트림 - 데이터를 기록

        공공의 OutputStreamWriter (OutputStream에 아웃)

        공공의 OutputStreamWriter (OutputStream에 출력, 문자열 charsetName)

InputStreamReader : 문자 입력 스트림 - 읽기 자료

        공공 InputStreamReader (의 InputStream에서)

        공공 InputStreamReader (의 InputStream에서, 문자열 charsetName가 )
프로그램과 텍스트 파일 스톱워치가 아닌 경우, UTF-8 형식으로 txt 파일 인코딩을 만들려면 다음 변환 스트림으로 변환

com.oracle.demo01 패키지, 

가져 오기 java.io.FileNotFoundException; 
가져 오기 java.io.FileOutputStream의, 
가져 오기 때 java.io.IOException; 
가져 오기 java.io.OutputStreamWriter; 
가져 오기 java.io.UnsupportedEncodingException; 

공용 클래스 Demo01 { 
	  주 무효 정적 공개 (문자열 []에 args) IOException가 {던졌습니다 
		대상을 취소 // 
		  ( "D : \\ \\ a.txt이 자바") FileOutputStream 또는의 FOS는 = 새로운 새로운 FileOutputStream 또는; 
		// 감형 만들기 
		  의 OutputStreamWriter OSW = 새의 OutputStreamWriter (FOS, "UTF- 8 "); 
		// 쓰기 문자 
		  osw.write (") "을 제외한 모든 특별한에 시작하는 
		  () osw.flush; 
		// 릴리스 자원 
		  osw.close (); 
	} 
}

  

패키지 com.oracle.demo01; 

수입 java.io.FileInputStream의; 
수입 java.io.FileNotFoundException; 
수입 때 java.io.IOException; 
수입 java.io.InputStreamReader; 
수입 java.io.UnsupportedEncodingException; 

Public 클래스 Demo02 { 
	   공공 정적 무효 메인 (문자열 []에 args) {IOException이 발생 
	   //明确数据源
		 FileInputStream의 FIS = FileInputStream에 새로운 ( "D : \\ \\ a.txt이 자바를"); 
	   //创建转换流对象
		 InputStreamReader ISR = 새로운 InputStreamReader (FIS, "UTF-8"); 
		 INT LEN = 0; 
		 숯 [] = CH 새로운 문자 [1024]; 
		 //开始读
		 동안 ((LEN = isr.read (CH)) = - 1!) { 
			 에서 System.out.println (새로운 String (CH, 0, 렌)); 
		 }  
	     //释放资源
		 isr.close (); 
	}
}

  a.txt이 a.txt이 동일한 파일 형식뿐만 아니라 파일의 내용을 복사

패키지 com.oracle.demo01; 

수입 java.io.FileInputStream의; 
수입 java.io.FileNotFoundException; 
수입 java.io.FileOutputStream의; 
수입 때 java.io.IOException; 
수입 java.io.InputStreamReader; 
수입 java.io.OutputStreamWriter; 
수입 java.io.UnsupportedEncodingException; 

공용 클래스 복사 { 
	   공공 정적 무효 메인 (문자열 []에 args) 공개 IOException { 
	   // 1先明确数据源. 
		 FileInputStream의 FIS는 = 새로운 FileInputStream에 ( "D : \\ 자바 \\해서 a.txt"); 
	   // 2创建字符输入转换流. 
		 InputStreamReader ISR = 새로운 InputStreamReader (FIS, "UTF-8"); 
	   // 3明确目的地. 
		 FileOutputStream에의 FOS = FileOutputStream에 새로운 ( "D : \\ 자바 \\ aa.txt"); 
	   // 4 문자 출력 스트림 변환을 만들
		 OSW = 새의 OutputStreamWriter의 OutputStreamWriter (FOS "UTF-8"); 
	   //开始复制
		 CHAR [] = CH 새로운 문자 [1024]; 
		 INT LEN = 0; 
		 반면 (! (= LEN isr.read (CH3)) = - 1) { 
			 osw.write (CH 0 렌); 
			 osw.flush (); 
		 } 
		  //释放资源
		  isr.close (); 
		  osw.close (); 
	} 
}

버퍼 스트림 : 스트림을 효율적으로 쓰기를 제공하기 위해 가속

키워드 : 버퍼

두 바이트 스트림을 버퍼링 :

바이트의 입력 스트림 버퍼 : BufferedInputStream을

바이트 버퍼 출력 스트림 :의 BufferedOutputStream

com.oracle.demo02 패키지, 

가져 오기 java.io.BufferedOutputStream에, 
가져 오기 java.io.FileOutputStream의, 
가져 오기 때 java.io.IOException; 

공용 클래스 Demo01 { 
	   공공 정적 무효 메인 (문자열 []에 args)이 IOException가 {던졌습니다 
	   // 대상을 취소 (출력) 파일이 txt 쓴 
	     ; = 새로운 새의 FileOutputStream ( "\\ \\ hello.txt 자바 D")의 FileOutputStream의 FOS 
	   // (바이트 버퍼의 출력 스트림에 추가) 버퍼 개체 생성 
	     의 BufferedOutputStream 새로운 새의 BufferedOutputStream BOS = ( FOS); 
	   // 쓰기 바이트 
         bos.write (.getBytes ( "ABC123")); 
       // 릴리스 자원 
         bos.close (); 
         
	} 
}

위의 코드는 내가 성공으로 보이지 않았다, 마지막 실행 누가 마지막의 석방 촉구 쓰기 바이트, 최대 속도를하는 데 사용되는 버퍼를 생성 한 후 대상 파일을 취소 할 바이트 버퍼 출력 스트림입니다.

바이트의 입력 스트림 버퍼 : BufferedInputStream을

나는 내부의 파일에서 데이터를 읽어

com.oracle.demo02 패키지, 

가져 오기 java.io.BufferedInputStream의, 
가져 오기 java.io.FileInputStream의, 
가져 오기 때 java.io.IOException; 

공용 클래스 Demo02 { 
	   공공 정적 무효 메인 (문자열 []에 args)는 IOException가 {던졌습니다 
		// 데이터 소스를 취소합니다 TXT 파일의 내용을 판독 (판독) 
		  FileInputStream에 새로운 새 FIS를 FileInputStream에가 = ( "D : \\ \\ hello.txt 자바"); 
		// 바이트 스트림 입력 버퍼 작성 
		  BufferedInputStream을 BIS = 새로운 새 BufferedInputStream을 (FIS)를; 
		  INT 0 = LEN, 
		  그동안 ((LEN = bis.read ()) = - 1.!) { 
			  System.out.print (샤아 LEN)의; 
		  } 
		  // 방출 자원 
		  bis.close (); 
	} 
}

문자 버퍼 두 분획 :

문자 버퍼 입력 스트림 다음의 BufferedReader     Eadline와는 (); 행 NULL을 반환 어떠한 터미네이터를 포함하지 않는 광고의 내용에 포함 된 텍스트 스트링을 판독하고;

문자 버퍼 출력 스트림 : BufferedWriter의 독특한 방법 개행 (); 개행

com.oracle.demo02 패키지, 

가져 오기 java.io.BufferedWriter, 
가져 오기 java.io.FileWriter, 
가져 오기 때 java.io.IOException; 

공용 클래스 Demo03 { 
	   공공 정적 무효 메인 (문자열 []에 args)이 IOException가 {던졌습니다 
	   // 대상을 취소 
		 FW = 새로운 새로운 FileWriter FileWriter ( "D : \\ \\ hello.txt 자바", true로); 
	   // 문자 버퍼 출력 스트림 만들기 
		 BufferedWriter의 새로운 새로운 BufferedWriter의, BW = (FW); 
	   // 쓰기 바이트 
		 "(당신을 bw.write을 물론, 큰 곰 ") ;! 
		 bw.flush는 (); 
	   // 포장 
		 , bw.newLine () 
		 나는)"강력한 대머리 괜찮아 bw.write를 ( "; 
		 // 릴리스 자원 
		 bw.close (); 
		 
	} 
}

  

패키지 com.oracle.demo02; 

수입 java.io.BufferedReader의; 
수입 java.io.FileReader; 
수입 때 java.io.IOException; 

Public 클래스 Demo04 { 
    공공 정적 무효 메인 (문자열 []에 args) {IOException이 발생 
		//明确数据源
    	  을 FileReader FR = 새을 FileReader ( "D : \\ 자바 \\ hello.txt를"); 
       //创建字符输入缓冲流
    	  의 BufferedReader BR = 새로운 BufferedReader의 (FR); 
    	  문자열 라인 = NULL; 
    			  /*br.readLine (); 
    	  에서 System.out.println (행); 
    	  
    	  라인 = br.readLine (); 
    	  에서 System.out.println (행); 
    	  
    	  라인 = br.readLine (); 
    	  에서 System.out.println (행); * / 
          동안 (! (= 선 br.readLine ()) = NULL) {
        	  에서 System.out.println (라인); 
          } 
          // 릴리스 자원 
    	  br.close ();  	 
	} 
}

  

 

Eadline와 () 스트림의 마지막에있는 경우, 어떤 라인 터미네이터 포함하지 않고, 행의 내용이 포함 된 텍스트 문자열의 라인을 읽는 널 (null)

 

추천

출처www.cnblogs.com/awdsjk/p/11058187.html