2016-10-20 3 views
-2

저는 Java를 처음 사용하고 있으며 클래스 프로젝트로 Java 퀴즈 게임을 만들고 있습니다. 내 문제는 프로그램의 게임 부분에 있습니다. for 문을 사용하여 텍스트 파일에서 질문, 답변, 정답 및 각 질문의 포인트 값을 읽으려고합니다. 내 문제는 질문과 대답을 표시하고 질문에 대한 올바른 대답과 점수 값의 값을 저장하기 위해 for 루프 내에 코드를 작성하는 방법을 모른다는 것입니다. 여기에 텍스트 파일의 형식이다 : 자바에서 파일을 읽기Java의 텍스트 파일에서 데이터 읽기

//importing dialog box tools, scanner tools, and file reading/writing tools 
import javax.swing.JOptionPane; 
import java.io.*; 
import java.util.Scanner; 

public class JavaQuiz 
{ 
public static void main(String[],args) throws IOException 
{ 
    //Declaring and initializing variables 
    String userChoice, gameQuestion, gameAnswer; 
    int gameScore = 0, menuChoice = 0; 

    //Declaring file object 
    File infile = new File("Questions.txt"); 

    //Declaring scanner object for file reading 
    Scanner fileInput = new Scanner(infile); 

    //Opening statement 
    JOptionPane.showMessageDialog(null, "Let's Begin!"); 
    JOptionPane.showMessageDialog(null, "First Question!"); 

    //Reading data from "Questions.txt" 
    for(int i=1; i<=7; i++) //there are 7 questions in the text file. 
    { 

    } 

    //Closing file 
    fileInput.close(); 
} 
} 
+0

JOptionPanes를 통해 모든 텍스트를 표시 하시겠습니까? –

+0

그래, 모든 텍스트를 대화 상자에 표시하는 것은 끔찍한 생각입니다. 응용 프로그램 창을 작성한 다음 필요에 따라 조작하십시오. – ifly6

+0

저는이 언어에 익숙하지 않으며 응용 프로그램 창을 사용하기 위해 수업에서 그다지 익숙하지 않았습니다. 출력을 표시하는 방법을 알고있는 유일한 방법은 터미널 또는 대화 상자를 사용하는 것입니다. – Messja93

답변

2

(적어도, 자바 8) 매우 간단합니다 :

Question 
A) answer 
B) answer 
C) answer 
D) answer 
correct answer 
point value 

여기 내 코드입니다. 이 작업을 수행 할 수 있습니다

List<String> lines = Files.readAllLines(Paths.get(PATHTOFILE)); 
Map<Character, String> answers = HashMap<>(); 

String question = lines.get(0); 

answers.put('A', lines.get(1)); 
answers.put('B', lines.get(2)); 
answers.put('C', lines.get(3)); 
answers.put('D', lines.get(4)); 
Character answer = lines.get(5).charAt(0); 

Integer value = Integer.parseInt(lines.get(6)); 

은 그럼 그냥 함수는, 모든 정보를 보유 아마 그냥 POJO, Question을 객체를 반환했다. 그런 다음 해당 질문을 코드에서 사용할 수 있습니다.

관련 문제