Sto facendo un esercizio di autoapprendimento per aiutarmi a capire di più su Java, ma sono bloccato a questa domanda. Ho il seguente file txt:Leggere un file separato da tab e mettere le parole in un ArrayList
Name Hobby
Susy eat fish
Anna gardening
Billy bowling with friends
Nota: nome e hobby sono separati da scheda
Qual è il modo migliore per leggere tutta la linea e metterlo in ArrayList (nome, hobby). La parte difficile è che
eat fish or bowling with friends
ha spazi bianchi e deve essere messo sotto un array e ovviamente non può hardcode esso. Qui è il mio codice corrente:
public void openFile(){
try{
FileInputStream fstream = new FileInputStream("textfile.txt");
// use DataInputStream to read binary NOT text
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
ArrayList<String> names = new ArrayList<String>();
ArrayList<String> hobbies = new ArrayList<String>();
String lineJustFetched;
while ((lineJustFetched = br.readLine()) != null) {
String[] tokens = lineJustFetched.split(" \t");
ho ottenuto un errore:
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
Ho il sospetto contando l'indice non è molto utile su una scheda. Qualche idea?
Assicurarsi che nessuno nuova linea/vuota è presente alla fine del file. – srkavin