I have the following piece of code to read a tab-separated file in Java:
while ((str = in.readLine()) != null) {
if (str.trim().length() == 0) {
continue;
}
String[] values = str.split("\\t");
System.out.println("Printing file content:");
System.out.println("First field" + values[0] + "Next field" + values[1]);
}
But it's printing 1 instead of the file content. What is wrong here? A line from the sample file reads as follow:
{Amy Grant}{/m/0n8vzn2}{...}
Try
System.out.println(Arrays.asList(values))
;This works! But I need to access the fields separately. Could you plesae tell me what is wring in my code?
I suspect you are getting an IndexOutOfBoundsException
. The error you are getting is important and you can't hope to solve the problem if you ignore it.
This would mean you have only one field set.
String[] values = str.split("\\t", -1); // don't truncate empty fields
System.out.println("Printing file content:");
System.out.println("First field" + values[0] +
(values.length > 1 ? ", Next field" + values[1] : " there is no second field"));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With