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(); } } }