Ich frage mich, warum ich diese Warnung mit der neuen Eclipse Juno bekomme, obwohl ich denke, dass ich alles richtig gemacht habe. Können Sie mir bitte sagen, warum ich diese Warnung in dem folgenden Codecode bekomme?Eclipse Juno: nicht zugewiesener schließbarer Wert
public static boolean copyFile(String fileSource, String fileDestination)
{
try
{
// Create channel on the source (the line below generates a warning unassigned closeable value)
FileChannel srcChannel = new FileInputStream(fileSource).getChannel();
// Create channel on the destination (the line below generates a warning unassigned closeable value)
FileChannel dstChannel = new FileOutputStream(fileDestination).getChannel();
// Copy file contents from source to destination
dstChannel.transferFrom(srcChannel, 0, srcChannel.size());
// Close the channels
srcChannel.close();
dstChannel.close();
return true;
}
catch (IOException e)
{
return false;
}
}
Dies funktioniert, aber ich möchte jetzt, wie Sie diese Warnung entfernen, ohne diese Funktion zu verwenden! Und warum ist es nicht möglich, den FileChannel direkt in den Ressourcen zu deklarieren. EDIT: Sie haben gerade meine Frage beantwortet, aber warum schließen Sie den FileChannel nicht? – Abbadon
Wenn Sie den Stream schließen, wird der Kanal geschlossen. Sie müssen es nicht explizit schließen. – Strelok
Ich habe total vermisst, dass (für den Java7-Code) die Deklaration des neuen FileInputStream und OutputStream passiert, bevor die Klammern für den try {} geöffnet werden. Ich nehme an, Sie haben das erwähnt, indem Sie sie als Block "Versuch mit Ressourcen" bezeichnet haben. Nach der Korrektur verschwanden die Warnungen. Liebe es! –