JDK9を扱うJDK7ストリームと例外

JDK7の新機能:

  後ろの()を追加しようと、ストリームオブジェクトは、括弧内に定義することができます

  コードの実行が完了してみてください、それは自動的にストリームオブジェクトが解放されますが、このストリームオブジェクトのスコープは、試しに効果的であるので、最終的に書くために不要になりました

パッケージcom.fgy.demo。

輸入java.io.FileInputStream;
輸入java.io.FileOutputStreamは、
インポートにjava.io.IOException;

// JDK7以前に書かれた
パブリック クラスDemo04CopyFile {
     公共 静的 ボイドメイン(文字列[]引数){
        FileInputStreamののinputStream = nullを
        FileOutputStream OutputStreamを = nullをしてみてください{
            InputStreamが = 新しい FileInputStreamを( "D:\\ A.TXTを" );
            OutputStreamを = 新しいのFileOutputStream( "D:\\ B.TXT" );
            int型のlen = 0 ;

            / * しばらく((LEN = inputStream.read())!= -1){
                outputStream.write(LEN)。
            } * /

            バイト []バイト= 新しい バイト [1024 ];
            一方、((LEN = inputStream.read(バイト))!= -1 ){
                outputStream.write(バイト 0 、LEN)。
            }
        } キャッチ(IOExceptionを電子){
            e.printStackTrace();
        } 最後に{
             場合(OutputStreamを!= nullの){
                 試み{
                    outputStream.close();
                } キャッチ(IOExceptionを電子){
                    e.printStackTrace();
                }
            }
            もし(InputStreamの!= nullの){
                 しようと{
                    inputStream.close();
                } キャッチ(IOExceptionを電子){
                    e.printStackTrace();
                }
            }
        }
    }
}
パッケージcom.fgy.demo。

輸入java.io.FileInputStream;
輸入java.io.FileOutputStreamは、
インポートにjava.io.IOException;

// JDK7写法
パブリック クラスDemo05JDK7 {
     公共 静的 ボイドメイン(文字列[]引数){
         試み(FileInputStreamののinputStream = 新規のFileInputStream( "D:\\ A.TXT" )。
             たFileOutputStreamのOutputStream = たFileOutputStream( "D:\\ c.txt" )){
             int型 LEN = 0 バイト []バイト= 新しい バイト [1024 ];
            一方、((LEN = inputStream.read(バイト))!= -1 ){
                outputStream.write(バイト 0 、LEN)。
            }
        } キャッチ(IOExceptionを電子){
            e.printStackTrace();
        }
    }
}

JDK9新機能:

  ストリームのオブジェクトを試みる前に定義することができます

  背後にしてみてください()を直接名(変数名)ストリームオブジェクトに導入することができます

  自動的に試みが終了した後、最終的には書いていないリソースを解放します

パッケージcom.fgy.demo。

輸入java.io.FileInputStream;
輸入java.io.FileNotFoundException。
輸入java.io.FileOutputStreamは、
インポートにjava.io.IOException;

// JDK9写法
パブリック クラスDemo05JDK9 {
     公共 静的 ボイドメイン(文字列[]引数)がスローにFileNotFoundExceptionを{
        FileInputStreamののinputStream = 新しい FileInputStreamを( "D:\\ A.TXT" );
        FileOutputStream OutputStreamを = 新しいのFileOutputStream( "D:\\ d.txt" );
        試す(InputStreamを;のOutputStream){
             int型 LEN = 0 バイト []バイト= 新しい バイト [1024 ];
            一方、((LEN = inputStream.read(バイト))!= -1 ){
                outputStream.write(バイト 0 、LEN)。
            }
        } キャッチ(IOExceptionを電子){
            e.printStackTrace();
        }
    }
}

おすすめ

転載: www.cnblogs.com/roadlandscape/p/12125015.html