0
Java에서 File and Scanner를 사용하여 CSV 파일을 열려고하는데 스캐너를 사용하여 열 수 없습니다. 첨부 된 코드는 어떤 아이디어입니까? 관련 코드는 parseFile 기능의 코드가 시도/캐치 작동하지 않을 이유를 알아 내려고 노력하고, 아직 아무것도하지 않는스캐너에서 Java로 CSV 파일 열기
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class CIS350HW1 {
/**
* @param args
*/
public static void main(String[] args) {
boolean quit = false;
int year = 0;
while(quit == false){
printMenu();
Scanner sc = new Scanner(System.in);
String str = sc.next().toUpperCase();
System.out.println(str);
if (str.equals("Q")) {
System.out.println("Good bye");
quit = true;
}
else if (str.equals("3")) {
parseFile(args[0], Integer.parseInt(str), year);
}
else if (str.equals("2") || str.equals("1")) {
System.out.println("Please enter the year: "); //remember might not be println
try {
year = Integer.parseInt(sc.next());
} catch(NumberFormatException e) {
System.out.print("Invalid formatted input. ");
}
if (year < 1920 || year > 2010){
System.out.println("Not a valid year.");
System.out.println();
}
parseFile(args[0], Integer.parseInt(str), year);
}
else {
System.out.println("That is not a valid selection.");
}
}
}
/**
* prints the menu options to the consul.
*/
public static void printMenu() {
System.out.println("Welcome to the Oscars database!");
System.out.println();
System.out.println("Please make your selection:");
System.out.println("1: Search for best picture award winner by year");
System.out.println("2: Search for best picture award nominees by year");
System.out.println("3: Search for actor/actress nominations by name");
System.out.println("Q: Quit");
}
public static void parseFile(String args, int n, int year) {
File file = new File(args);
Scanner input = null;
try {
input = new Scanner(file);
} catch (FileNotFoundException e) {
System.out.println("Could not open the file for some reason.");
}
while(input.hasNext()) {
String nextLine = input.nextLine();
String token[] = nextLine.split(",");
if (n == 1) {
String tempYear[] = token[0].split(" ");
if (Integer.parseInt(tempYear[0]) == year
&& token[1].equals("Best Picture")
&& token[3].equals("YES")) {
System.out.println(token[2]);
}
}
}
input.close();
}
}
주입니다. 감사합니다.
'결코 작동하지 않음'이란 무엇입니까? – kmera
"어떤 이유로 파일을 열 수 없습니다."라는 오류 메시지가 표시됩니다. 항상 인쇄하고 주 –
에 예외 스레드가 발생하면 파일을 찾지 못합니다. 어떻게 파일 이름을 프로그램에 전달합니까? – kmera