I have a text file:
ids.txt
1000 999 745 123 ...
I want to read this file and load it in a two-dimensional array. I expect to have an array like the one below:
Object[][] data = new Object[][] { // { new Integer(1000) }, // { new Integer(999) }, // { new Integer(745) }, // { new Integer(123) }, // ... };
Here is the code I wrote:
File idsFile = ... ; try (Stream<String> idsStream = Files.lines(idsFile.toPath(), StandardCharsets.US_ASCII)) { Object[][] ids = idsStream .filter(s -> s.trim().length() > 0) .toArray(size -> new Object[size][]); // Process ids array here... }
When this code is run, an exception is thrown:
java.lang.ArrayStoreException: null at java.lang.System.arraycopy(Native Method) ~[na:1.8.0_45] at java.util.stream.SpinedBuffer.copyInto(Unknown Source) ~[na:1.8.0_45] at java.util.stream.Nodes$SpinedNodeBuilder.copyInto(Unknown Source) ~[na:1.8.0_45] at java.util.stream.SpinedBuffer.asArray(Unknown Source) ~[na:1.8.0_45] at java.util.stream.Nodes$SpinedNodeBuilder.asArray(Unknown Source) ~[na:1.8.0_45] at java.util.stream.ReferencePipeline.toArray(Unknown Source) ~[na:1.8.0_45] ...
How to resolve this exception?
source share