I know how to read a file with Java
using Scanner
and File IOException, but the only thing I don’t know is how to store the text in the files as an array.
Here is a snippet
of my code:
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")); // while loop while(inFile1.hasNext()){ // how can I create array from text read? // find next line token1 = inFile1.nextLine();
Here is what my KeyWestTemp.txt
file contains:
70.3, 70.8, 73.8, 77.0, 80.7, 83.4, 84.5, 84.4, 83.4, 80.2, 76.3, 72.0
Advertisement
Answer
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); } } }