GeoTiffReaderにdeleteOnExit()としてマークされたFileインスタンスを渡すと、そのファイルは終了時に削除されません。GeoTiffReaderはdeleteOnExitを防止します
File geotiffFile = Paths.get("geotools-test.tiff").toFile();
geotiffFile.deleteOnExit();
Files.readAllBytes(geotiffFile.toPath());
私はGeoTiffReaderが出口でファイルハンドルを解放していない疑いがある:
File geotiffFile = Paths.get("geotools-test.tiff").toFile();
geotiffFile.deleteOnExit();
GeoTiffReader reader = new GeoTiffReader(geotiffFile);
reader.read(null);
は、私が期待どおりに動作GeoTiffReaderなしバージョンを試してみました問題を特定するには。全コード:それはそれ以降のファイルを削除脳死オペレーティングシステムを妨げる根本的な
inputStream
を解放する機会を持つように
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import org.geotools.gce.geotiff.GeoTiffReader;
public class GeoTiffReaderLingeringHandles
{
public static void main(String[] args)
throws IOException
{
main_working(args);
// main_broken(args);
}
public static void main_working(String[] args)
throws IOException
{
File geotiffFile = Paths.get("geotools-test.tiff").toFile();
geotiffFile.deleteOnExit();
}
public static void main_broken(String[] args)
throws IOException
{
File geotiffFile = Paths.get("geotools-test.tiff").toFile();
geotiffFile.deleteOnExit();
GeoTiffReader reader = new GeoTiffReader(geotiffFile);
reader.read(null);
}
}
答えの良い殻がありますが、ジャスティンLの方がより完璧です。 Windowsは脳死です。 – spt5007
私はカバレッジリーダーを処分するだけで十分だと確信しています –