在java中读取文件的问题

时间:2014-02-21 20:25:09

标签: java file java.util.scanner

我正在为一个班级做一个项目,但对于我的生活,我最难找到如何从文件中读取文本。我们必须创建一个交通灯,对来自北,南,东和西的卡车和汽车进行排队。自从我完成任何编码以来已经有很长一段时间了,所以我在努力奋斗。我认为它只是读取内存位置。这是我在文件中阅读的代码。

package Project1;
import java.io.*;
import java.util.*;


public class TrafficSim {

public String input;

public TrafficSim(String input)
{
    this.input = input;
    readFromFile();
}



private boolean readFromFile()
{
    File inputText = new File("input1.txt");

    try
    {
        Scanner scan = new Scanner(inputText);

        while(scan.hasNextLine())
        {
            String direction = scan.nextLine();
            int num = scan.nextInt();
        }
    }
    catch(FileNotFoundException e)
    {
        e.printStackTrace();
    }
    return false;
}



public static void main(String[] args) {
    // TODO Auto-generated method stub      
    TrafficSim sim = new TrafficSim("input1.txt");
        System.out.println(sim);    
}

}

2 个答案:

答案 0 :(得分:2)

你的方法readFromFile确实从文件读取,但它没有做任何事情。你所做的只是逐行阅读,在你的while循环的每次迭代之后忘记的变量中存储一行文本和一个int。

您的代码System.out.println(sim)打印出您的类返回的toString方法,并且由于您没有覆盖该方法,它将打印出Object.toString的结果,这不是你想要什么。

简单地说,你是从一个文件中读取的,但是你没有对你读过的内容做任何事情。

答案 1 :(得分:0)

这是我要做的......

public class TrafficSim {

    private String input;
    private String content;

    public TrafficSim(String input) {
        this.setInput(input);
        this.setContent(readFromFile());
    }

    private String readFromFile() {
        File inputText = new File(input);
        StringBuilder sb = new StringBuilder();

        try {
            Scanner scan = new Scanner(inputText);
            while (scan.hasNextLine()) {
                sb.append(scan.nextLine());
            }
            scan.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        return sb.toString();
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getInput() {
        return input;
    }

    public void setInput(String input) {
        this.input = input;
    }

    public static void main(String[] args) {
        TrafficSim sim = new TrafficSim("input1.txt");
        System.out.println(sim.getContent());
    }
}

我看到的问题是你没有遵循已经提出的意见和建议。 ktm5124很清楚问题是什么。在某些时候,你将不得不了解这里发生了什么,以及如何解决它。