2014-12-11 6 views
-3

사용자로부터 파일 이름 (예 : 영어)을 사용하는 프로그램을 작성한 다음이 파일을 열어 (9 가지 질문) 나누어서 (각각 3 가지 레벨로 나눕니다. 레벨에 3 개의 질문이있는 경우), 답변이 포함 된 다른 파일 (EnglishC)을 연 다음 정답과 비교합니다. 올바른 경우 grade++.한 줄씩 파일 읽기 및 인쇄

출력 : 소스

enter your choice: 
1.English 
2.Math 
3.Science 

java.io.FileNotFoundException: English.txt (No such file or directory) 
at java.io.FileInputStream.open(Native Method) 
at java.io.FileInputStream.<init>(FileInputStream.java:120) 
at java.util.Scanner.<init>(Scanner.java:636) 
at Generater.createQuestions(Generater.java:50) 
at Generater.choose_subject_And_Level(Generater.java:41) 
at Generater.main(Generater.java:139) 

: java.io.FileNotFoundException이 /가 읽을 수 있도록되어있는 파일을 의미 던져 기록

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.Scanner; 

public class Generater { 
static int levelNo = 1; 
static int subjectName; 
static int grade; 
static String fileName; 
static String fileNameCorrect; 
static String ans; 
static String correctAns; 

public static void choose_subject_And_Level() { 
    // here the main will call this method to ask the user what subject to be tested in? 
    Scanner input = new Scanner(System.in); 

    System.out.println("enter your choice:\n 1.English\n2.Math\n3.Science "); 
    subjectName = input.nextInt(); 

    switch (subjectName) { 
    case 1: 
     fileName = "English.txt"; 
     fileNameCorrect = "EnglishC.txt"; 
     break; 
    case 2: 
     fileName = "Math.txt"; 
     fileNameCorrect = "MathC.txt"; 
     break; 
    case 3: 
     fileName = "Science.txt"; 
     fileNameCorrect = "SienceC.txt"; 
     break; 
    } 

    createQuestions(fileName, fileNameCorrect, levelNo); 

} 

public static void createQuestions(String fileName, String fileNameCorrect, 
     int levelNo) { 

    Scanner input, input2; 
    try { 
     input = new Scanner(new File(fileName)); 
     input2 = new Scanner(new File(fileNameCorrect)); 
     input.useDelimiter("*"); 

     FileInputStream fs = new FileInputStream(fileName); 
     FileInputStream fs2 = new FileInputStream(fileNameCorrect); 

     BufferedReader br = new BufferedReader(new InputStreamReader(fs)); 
     BufferedReader br2 = new BufferedReader(new InputStreamReader(fs2));! 

     while (input.hasNext()) { 
      switch (levelNo) { 
      case 1: 
       for (int i = 1,k=1; i <= 3 ; i++,k++) { 
        System.out.printf("\nQ#\f: " + input.next() + "\n" , k); 

        ans = input.next(); 

        correctAns = input2.next(); 

        if (ans == correctAns) { 
         grade++; 
        } 
       } 
       break; 

      case 2: 
       for (int i = 4, k = 1; i <= 6; i++, k++) { 

        try { 
         for (int j = 1; j <= 3; j++) { 
          br.readLine(); 
          correctAns = br2.readLine(); 
         } 
        } catch (IOException e) { 

         e.printStackTrace(); 
        } 
        System.out.printf("\nQ#\f: " + input.next() + "\n" , k); 

        ans = input.next();     

        if (ans == correctAns) { 
         grade++; 
        } 
       } 
       break; 

      case 3: 
       for (int i = 7, k = 1; i <= 9; i++, k++) { 

        try { 
         for (int j = 1; j <= 6 ; j++){ 
          br.readLine(); 
          correctAns = br2.readLine(); 
         } 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } 

        System.out.printf("\nQ#\f: " + input.next() + "\n" , k); 

        ans = input.next(); 

        correctAns = input2.next(); 

        if (ans == correctAns) { 
         grade++; 
        } 
       } 
       break; 
      } 

     } 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 

    } 

} 

// the main 
public static void main(String[] args) { 

    choose_subject_And_Level(); 

} 
} 
+1

이 오류의 사진에 대한 링크를 제거하고 문제의 실제 오류 텍스트를 붙여주세요. 대부분의 사람들은 귀하의 오류를보기 위해 링크를 따르고 싶지 않습니다. – StormeHawke

답변

1

가에 존재하지 않는 지정된 위치. 파일 시스템에서 파일이있는 곳을보고 해당 파일 (English.txt)이 있는지 확인하십시오. 여기

상세 정보 : https://docs.oracle.com/javase/7/docs/api/java/io/FileNotFoundException.html

+0

이것은 의견이며 답변이 없습니다. –

+1

좋아, 나는 그것을 놓쳤다. 내 대답 편집 :) – BMU

+0

파일이 이미 프로젝트의 동일한 폴더에 있습니다. 내 코드에 문제가 있습니까? – AAlj

관련 문제