简体   繁体   中英

Reading space separated numbers from a file

I'm on my winter break and trying to get my Java skills back up to snuff so I am working on some random projects I've found on codeeval. I'm having trouble opening a file in java doing the fizzbuzz program. I have the actual fizzbuzz logic part down and working just fine, but opening the file is proving problematic.

So presumably, a file is going to be opened as an argument to the main method; said file will contain at least 1 line; each line contains 3 numbers separated by a space.

public static void main(String[] args) throws IOException {
    int a, b, c;        
    String file_path = args[0];

    // how to open and read the file into a,b,c here?

    buzzTheFizz(a, b, c);

}

You can use the Scanner like so;

Scanner sc = new Scanner(new File(args[0]));
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();

By default scanner uses whitespace and newline as seperators, just what you want.

try {
    Scanner scanner = new Scanner(new File(file_path));
    while( scanner.hasNextInt() ){
      int a = scanner.nextInt();
      int b = scanner.nextInt();
      int c = scanner.nextInt();
      buzzTheFizz( a, b, c);
    }
} catch( IOException ioe ){
    // error message
}

Using a loop it reads the whole file, have fun:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
    int a = 0;
    int b = 0;
    int c = 0;
    String file_path = args[0];

    Scanner sc = null;
    try {
        sc = new Scanner(new File(file_path));

        while (sc.hasNext()) {
            a = sc.nextInt();
            b = sc.nextInt();
            c = sc.nextInt();
            System.out.println("a: " + a + ", b: " + b + ", c: " + c);
        }
    } catch (FileNotFoundException e) {
        System.err.println(e);
    }
}
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM