2016-11-10 1 views
-2

Also ich habe ein Array int [] numbers = {1,2}; Aber ich möchte die 1,2 entfernt und durch Zahlen aus einer TXT-Datei ersetzt werden. Ich kann die Zahlen aus den Dateien in der Konsole mit dieser Methode finden Sie unter:Wie speichern Sie Ganzzahlen aus einer TXT-Datei in ein Array?

public String[] readLines(String filename) throws IOException { 
    FileReader fileReader = new FileReader(filename); 
    BufferedReader bufferedReader = new BufferedReader(fileReader); 
    List<String> lines = new ArrayList<String>(); 
    String line = null; 
    while ((line = bufferedReader.readLine()) != null) { 
     lines.add(line); 
    } 
    bufferedReader.close(); 
    return lines.toArray(new String[lines.size()]); 
} 

public static void testFileArrayProvider() throws IOException { 
    algo1 fap = new algo1(); 
    String[] lines = fap 
      .readLines("D:/Users/XXX/workspace/abc/src/abc1/Filename123"); 
    for (String line : lines) { 
     System.out.println(line); 
    } 
} 

Jetzt muss ich sie im Array speichern. Aber wie? xd Thx Jungs

+3

Können Sie ein Beispiel Ihrer Dateiinhalte geben? Wie sind die Nummern getrennt? –

+0

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html – tnw

+0

Nummer, nächste Zeile, Nummer, nächste Zeile. SO 1 Nummer jede Zeile –

Antwort

2

Dies sollte funktionieren:

// In your case this is already populated 
    String[] lines = new String[] {"123", "4567"}; 


    // Easier to work with lists first 
    List<Integer> results = new ArrayList<>(); 
    for (String line : lines) { 
     results.add(Integer.parseInt(line)); 
    } 

    // If you really want it to be int[] for some reason 
    int[] finalResults = new int[results.size()]; 

    for (int i = 0; i < results.size(); i++) { 
     finalResults[i] = results.get(i); 
    } 

    // This is only to prove it worked 
    System.out.println(Arrays.toString(finalResults)); 

In Java-8, können Sie es zu

verkürzen
int[] finalResults = Arrays.stream(lines).mapToInt(Integer::parseInt).toArray(); 
+2

In Java 8, 'int [] finalResults = Arrays.stream (Linien) .mapToInt (Integer :: parseInt). ToArray();' – bradimus

+0

@bradimus Gott sei Dank für java8 – DejaVuSansMono

+0

@bradimus Noch besser. Sie sollten es als richtige Antwort veröffentlichen. –

Verwandte Themen