2016-11-10 4 views
-2

Итак, у меня есть массив int [] numbers = {1,2}; Но я хочу, чтобы 1,2 были удалены и заменены номерами из txt-файла. я могу видеть номера из файлов в консоли с этим методом:Как сохранить целые числа из .txt-файла в массив?

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); 
    } 
} 

Теперь мне нужно, чтобы сохранить их в массиве. Но как? XD Thx ребята

+3

Не могли бы вы привести пример вашего содержимого файла? Как разделяются числа? –

+0

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

+0

номер, следующая строка, номер, следующая линия. SO 1 число каждой строки –

ответ

2

Это должно работать:

// 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)); 

В Java-8, вы можете сократить его

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

В java 8, 'int [] finalResults = Arrays.stream (lines) .mapToInt (Integer :: parseInt) .toArray();' – bradimus

+0

@bradimus Благодарим за java8 – DejaVuSansMono

+0

@bradimus Еще лучше. Вы должны опубликовать его как правильный ответ. –