2015-02-19 2 views
-1

У меня есть базовый класс FileOutput, который будет писать в текстовый файл HighScores. У меня также есть класс fileReader, который распечатает то, что написано в текстовом файле. Есть ли способ прочитать строку текстового файла HighScores и сохранить его как переменную String? В конце концов я хочу, чтобы иметь возможность следить за топ-5 Рекорды в игре, так что я нужен способ, чтобы сравнить последнюю оценку тем, в верхнем 5. Вот мой код до сих пор:Чтение из текстового файла и создание строковой переменной?

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

public class FileReader 
{ 

public static void main(String args[]) throws Exception 
{ 
    // Read from an already existing text file 


    File inputFile = new File("./src/HighScores"); 
    Scanner sc = new Scanner(inputFile); 
    while (sc.hasNext()){ 
     String s = sc.next(); 
     System.out.println(s); 
    } 

} 

FileOutput Класс:

import java.io.PrintWriter; 
import java.io.FileWriter; 
import java.util.ArrayList; 

public class FileOutput 
{ 
    public static void main(String args[]) throws Exception 
    { 
     FileWriter outFile = new FileWriter("./src/HighScores"); 
     PrintWriter out = new PrintWriter(outFile); 

     // Write text to file 
     out.print("Top Five High Scores"); 
     out.println(50); 
     out.println(45); 
     out.println(20); 
     out.println(10); 
     out.println(5); 
     out.close(); 
    } 
} 
+0

Вы не хотите строковая переменная, вам нужна строка * collection *. У вас уже есть строковая переменная. Я бы быстро выполнил поиск «java list of strings» или что-то похожее на начало работы. –

+0

Строка s = sc.nextLine()? или вы хотите прочитать строку, которая содержит 5 лучших результатов и разделить ее на 5 баллов? – crAlexander

+0

Возможный дубликат [Как прочитать большой текстовый файл по строкам с помощью Java?] (Http://stackoverflow.com/questions/5868369/how-to-read-a-large-text-file-line-by- line-use-java) –

ответ

0

Да.

Я не уверен, что это самый умный способ сделать это, но вы можете создать ArrayList и создать коллекцию строк. Вместо того, чтобы out.print'ing вы могли бы попробовать это:

ArrayList<String> al = new ArrayList<>(); 

    while (sc.hasNext()){ 
     String s = sc.next(); 
     al.add(s); 
    } 

Это создаст список строк, которые вы могли бы получить первые 5 значений позже, говоря:

String firstPlace = al.get(0); 
String secondPlace = al.get(1); 
String thirdPlace = al.get(2); 
String fourthPlace = al.get(3); 
String fifthPlace = al.get(4); 
Смежные вопросы