繁体   English   中英

在java中读取文件的问题

[英]Problems with reading a file in java

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

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);    
}

}

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

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

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

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

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很清楚问题是什么。 在某些时候,你将不得不了解这里发生了什么,以及如何解决它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM