Java read file and store text in an array Java read file and store text in an array arrays arrays

Java read file and store text in an array


Stored as strings:

public class ReadTemps {    public static void main(String[] args) throws IOException {    // TODO code application logic here    // // read KeyWestTemp.txt    // create token1    String token1 = "";    // for-each loop for calculating heat index of May - October    // create Scanner inFile1    Scanner inFile1 = new Scanner(new File("KeyWestTemp.txt")).useDelimiter(",\\s*");    // Original answer used LinkedList, but probably preferable to use ArrayList in most cases    // List<String> temps = new LinkedList<String>();    List<String> temps = new ArrayList<String>();    // while loop    while (inFile1.hasNext()) {      // find next line      token1 = inFile1.next();      temps.add(token1);    }    inFile1.close();    String[] tempsArray = temps.toArray(new String[0]);    for (String s : tempsArray) {      System.out.println(s);    }  }}

For floats:

import java.io.File;import java.io.IOException;import java.util.LinkedList;import java.util.List;import java.util.Scanner;public class ReadTemps {  public static void main(String[] args) throws IOException {    // TODO code application logic here    // // read KeyWestTemp.txt    // create token1    // for-each loop for calculating heat index of May - October    // create Scanner inFile1    Scanner inFile1 = new Scanner(new File("KeyWestTemp.txt")).useDelimiter(",\\s*");    // Original answer used LinkedList, but probably preferable to use ArrayList in most cases    // List<Float> temps = new LinkedList<Float>();    List<Float> temps = new ArrayList<Float>();    // while loop    while (inFile1.hasNext()) {      // find next line      float token1 = inFile1.nextFloat();      temps.add(token1);    }    inFile1.close();    Float[] tempsArray = temps.toArray(new Float[0]);    for (Float s : tempsArray) {      System.out.println(s);    }  }}


If you don't know the number of lines in your file, you don't have a size with which to init an array. In this case, it makes more sense to use a List :

List<String> tokens = new ArrayList<String>();while (inFile1.hasNext()) {    tokens.add(inFile1.nextLine());}

After that, if you need to, you can copy to an array :

String[] tokenArray = tokens.toArray(new String[0]);


Just read the whole file into a StringBuilder, then split the String by dot following a space. You will get a String array.

Scanner inFile1 = new Scanner(new File("KeyWestTemp.txt"));StringBuilder sb = new Stringbuilder();while(inFile1.hasNext()) {    sb.append(inFile1.nextLine());}String[] yourArray = sb.toString().split(", ");