Javaベース - 標準入力と出力のリダイレクト、データ・ストリーム

これらの二つの流れは非常に実用的な感じ

最初は再のsystem.in/outです

/ * 
 * 1標準入出力ストリーム
 、標準的な入力ストリーム、キーボードデフォルトから入力:System.in * 
 *のSystem.out標準出力ストリーム、コンソールからのデフォルト出力
 SETIN * Systemクラス(入力ストリームがある)/ setOut(のPrintStream PS)モード交代
 *      
 * * / 

パブリック クラスOtherStreamTest {
     / * 
     *方法A:スキャナを使用して実現、通話next()メソッドがあってもよい
     * 2:System.inを読み取る実装、System.in - >転流- >のreadlineのBufferedReaderの()
     *      
     * * / 
    @Test 
    公共 無効TEST1(){
         // 標準入力ストリームを取得 
        BufferedReaderのBR = ヌル;
         試して{
             //System.inストリームはバイトストリームであり、文字ストリームは、に変換される 
            InputStreamReaderのISR = 新しい新しい InputStreamReaderの(システム。);
             // 次に、文字ストリームバッファ転送パッキング 
            BR = 新しい新しいBufferedReaderの(ISR); 
            
            一方、真の){ 
                データストリング = br.readLine(); // ラインに直接読み込ま
                IF" E " .equalsIgnoreCase(データ)|| " 終了" .equalsIgnoreCase(データ)){ 
                    システム。OUT .println(" プログラムの終了" );
                     BREAK; 
                } 
                文字列upperString = data.toUpperCase()。
                システム。アウト.println(upperString)。
            } 
        } キャッチ(例外e){ 
            e.printStackTrace(); 
        } 
        最後に{
             しようと{
                 場合(BR =!ヌル
                    br.closeを(); 
            } キャッチ(例外e){ 
                e.printStackTrace(); 
            } 
        } 
    } 
    
    / * 打印流 
     *字节输出流のPrintStream 
     *文字出力ストリームのPrintWriter 
     *申し出範囲オーバーロードされたプリント()とのprintln()
     * * / 
    @Test 
    公共 のボイドTEST2は()にFileNotFoundException {スロー
         // バインディングファイル出力ストリームhello.txt 
        のPrintStream psのを= NULL ;
         試み{
             // ステップは、標準出力リダイレクト
             // 1.Newバイトストリームオブジェクト 
            たFileOutputStreamのFOS = 新しいたFileOutputStream(新しい(ファイルhello.txt ;))
             // バイトストリームへ2.新しい単語をセクション出力ストリームPS、ストリームに出力ストリーム 
            PS =新しい新しいのPrintStream(FOSを、真の);
             // プリントストリームPSに標準出力からリダイレクト3. CMD 
            IF!(PS = ヌル
                System.setOut(PS); 
            
            
            
            のためint型 I = 0 I <; 255 ; I ++ ){ 
                。システムOUT。プリント((CHAR )I);
                 IF(Iの%50 == 0 
                    システム。OUT .println(); 
            } 
        } キャッチ(例外e){ 
            e.printStackTrace(); 
        } 
        最後に{
             試み{
                 場合(!PS = ヌル
                    ps.close(); 
            } キャッチ(例外e){ 
                e.printStackTrace(); 
            } 
        } 
    }
    

第二の流れは、intなどのファイル/書き込みデータからストリームを読み出すために使用されます

/ * 
     *データ・ストリーム:DataInputStreamを:セットのInputStreamとOutputStreamの上記
     *機能:変数または文字列のデータ型の読み取りや書き込みを行うための基本
     *          
     * * / 
    @Test 
    公共 無効Test3は(){ 
        DataOutputStreamのDOS = ヌル;
         試み{
             // メモリ内の文字列、ファイルに書き込まれた変数の基本データ型 
            DOS = 新しい新しい DataOutputStreamを(新新のFileOutputStream(新新(ファイルhello.txt ))); 
            dos.writeUTF(zsben ); 
            DOS。フラッシュ();
            dos.writeInt(23 )。
            dos.writeBoolean(真の); 
            dos.flush(); 
        } キャッチ(例外e){
             // TODO自動生成されたcatchブロック
            e.printStackTrace(); 
        } 
        最後に{
             試み{
                 場合(!ドス= ヌル
                    dos.close(); 
            } キャッチ(例外e){ 
                e.printStackTrace(); 
            } 
        } 
    } 
}

おすすめ

転載: www.cnblogs.com/zsben991126/p/12161118.html