我正在为一个班级做一个项目,但对于我的生活,我最难找到如何从文件中读取文本。我们必须创建一个交通灯,对来自北,南,东和西的卡车和汽车进行排队。自从我完成任何编码以来已经有很长一段时间了,所以我在努力奋斗。我认为它只是读取内存位置。这是我在文件中阅读的代码。
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);
}
}
答案 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很清楚问题是什么。在某些时候,你将不得不了解这里发生了什么,以及如何解决它。