2016-03-24 32 views
-1

Bir dosyada (game-words.txt) bir arabellek okuyucusu aracılığıyla bir ArrayList of Strings dosyasına okumak istiyorum. Oyun-word.txt dosyasından okumak için arabelleğe alınmış okuyucuyu hazırladım, şimdi bunu bir ArrayList'te nasıl saklayacağımı bulmaya ihtiyacım var. Herhangi bir yardım ve sabır için şimdiden teşekkür ederiz! diziyeJava ArrayList dizisine okunan sözcükler

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileReader; 
import java.io.IOExecption; 

class Dictionary{ 
    String [] words; // or you can use an ArrayList 
    int numwords; 

    // constructor: read words from a file 
    public Dictionary(String filename){ } 
    BufferedReader br = null; 
    String line; 

    try { 

     br = new BufferedReader(new FileReader("game-words.txt")); 

    while ((line = br.readLine()) != null){ 
      System.out.println(line); 
    } 
    } catch (IOExecption e) { 

     e.printStackTrace(); 
    } 

} 
+1

ArrayList;) Java API'ye baktınız mı? – javaPhobic

+1

['Files.readAllLines (Yol)'] (https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#readAllLines-java.nio.file.Path-) bir 'List ' –

+0

döndürür. Bunu bana koduma nasıl uygulayabileceğinizi gösterir misiniz? Maalesef Java için yeni! –

cevap

1

Bu yararlı çok olabilir: Ben Döşeme kullandık

class Dictionary{ 
ArrayList<String> words = new ArrayList<String>(); // or you can use an ArrayList 
int numwords;String filename; 

// constructor: read words from a file 
public Dictionary(String filename){ 
    this.filename =filename; 
} 
BufferedReader br = null; 
String line; 

try { 

    br = new BufferedReader(new FileReader("game-words.txt")); 

while ((line = br.readLine()) != null){ 
     words.add(line.trim()); 
} 
} catch (IOExecption e) { 

    e.printStackTrace(); 
} 

} 

any.Also fazla varsa dosya adını geçirmek istiyorsanız, lider ve kelimelerinden sondaki boşlukları kaldırın hangi Bir parametre olarak Filereader içindeki dosyaadı değişkenini bir parametre olarak kullanın.

2

Okuma dizeleri:

Otomatik: İşte Ben bugüne kadar ne olduğunu

List<String> strings = Files.readAllLines(Path); 

Manuel: kelimelere

List<String> strings = new ArrayList<>(); 
while ((line = br.readLine()) != null){ 
      strings.add(line); 
    } 

Bölme çizgileri (Birini eğer satır birkaç kelime içeriyor):

for(String s : strings) { 
    String[] words = s.split(" "); //if words in line are separated by space 
} 
1

Evet, eklemek istediğiniz kelimeleri depolamak için arrayList'i kullanabilirsiniz. Dosyayı serileştirmek için aşağıdakileri kullanabilirsiniz.

ArrayList<String> pList = new ArrayList<String>(); 

public void deserializeFile(){ 
    try{ 
     BufferedReader br = new BufferedReader(new FileReader("file_name.txt")); 
     String line = null; 
     while ((line = br.readLine()) != null) { 
      // assuming your file has words separated by space 
      String ar[] = line.split(" "); 
      Collections.addAll(pList, ar); 
     } 
    } 
    catch (Exception ex){ 
     ex.printStackTrace(); 
    } 
}