に私は、コードFileInputStreamの誤差はSonarQube
問題がある以下で私が唯一API LEVEL 19+
上記のためであるtry-with-resources
を使用するように示唆sonarqubeをSonarQube
重要な問題を取得していますし、私はminimumSDK
としてLEVEL 16
を標的としています。
いずれにしても、私はすでに下のコードで行っているブロック内の閉じるFileInputStream
のブロックを示しています。
protected void copyFile(File sourceFile, File destFile) throws IOException {
if (!sourceFile.exists()) {
return;
}
FileChannel source = null;
FileChannel destination = null;
try {
source = new FileInputStream(sourceFile).getChannel();
destination = new FileOutputStream(destFile).getChannel();
if (source != null) {
destination.transferFrom(source, 0, source.size());
}
} finally {
if (source != null && destination != null) {
source.close();
destination.close();
}
}
}
でもアンドロイドスタジオは赤いラインのエラーを与え、finally
ブロックにtry-with-resources
OR近いストリームを使用するために同じことを示唆しています。
UPDATE
これを試しても、最後のブロックで閉じるストリームと言うエラーが表示される – Aks4125
申し訳ありませんが、close()が例外をスローする可能性があります。私は答えを更新します。 – fejd
私の更新された質問を確認してください。私はあなたの更新されたソリューションを使用しています。 – Aks4125