Ich versuche, die Java 8 Stream-Funktion zu verstehen.ArrayStoreException beim Versuch, Dateien in Array über Files.walk zu sammeln
Ich möchte alle Dateien in einem Array (könnte als Liste sein) in allen Unterverzeichnissen eines bestimmten Verzeichnispfads abfangen.
Mein Code löst einen java.lang.ArrayStoreException Fehler
File[] files = Files.walk(Paths.get(path)) .filter(Files::isRegularFile) .toArray(File[]::new);
Eine andere Sache, die ich versuchte, nur die Dateinamen zu einem vorhandenen Arraylist hinzuzufügen:
ArrayList<String> existingNames = new ArrayList<String>(); Files.walk(Paths.get(path)) .filter(Files::isRegularFile) .forEach(p -> existingNames.add(p.getFileName()));
Dies löst auch einen java.lang.ArrayStoreException Error aus.
Etwas anderes ich mit dem gleichen Ergebnis versucht wurde:
File[] files = Files.walk(Paths.get(path)) .filter(Files::isRegularFile) .toArray(File[]::new);
jemand mich in die richtige Richtung zeigen kann?
Die vollständige Stapelüberwachung ist:
Exception in thread "main" java.lang.ArrayStoreException bei java.lang.System.arraycopy (native Methode) bei java.util.stream.SpinedBuffer. copyInto (SpinedBuffer.java:198) um java.util.stream.Nodes $ SpinedNodeBuilder.copyInto (Nodes.java:1290) um java.util.stream.SinedBuffer.asArray (SpinedBuffer.java:215) um java. util.stream.Nodes $ SpinedNodeBuilder.asArray (Nodes.java:1296) um java.util.stream.ReferencePipeline.toArray (ReferencePipeline.java:439) um nachbearbeitung.CheckExistingMAIDs.main (CheckExistingMAIDs.java:41)
Vielen Dank im Voraus!
können Sie den vollständigen Stack Trace teilen bitte? – Mureinik
Mein schlechtes! Danke für den Tipp. Es ist ein java.lang.ArrayStoreException Error – Klaster
Dies ist möglicherweise ein Duplikat von [Umgang mit einer ArrayStoreException] (https://stackoverflow.com/questions/12369957/dealing-with-an-arraystoreexception).Leider habe ich diesen Fehler vorher noch nie gesehen, also kann ich nicht darüber hinaus helfen. – Carcigenicate