【发布时间】:2013-04-22 08:30:42
【问题描述】:
对不起,如果这是一个明显的问题,但我似乎无法理解。我正在为数据结构课程做作业。它涉及从一个简单的 .dat 文件中提取数据。我们以前从未在 Java 中使用过任何文件访问选项,所以教授只是给了我们该部分的工作代码。
一个名为FileReadExample 的类创建一个新的BufferedReader 对象,打开一个文件,然后应该踢出一堆关于该文件的数据。
但我根本无法访问任何数据。
在一个单独的testMain 文件中,我创建了一个名为fr 的新FileReadExample 对象,然后尝试从那里打印出fr.readLine() 之类的东西,但它告诉我没有这样的方法。
我确定我错过了一些非常简单的东西。
教授的代码:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class FileReadExample
{
public static void main(String[] args)
{
System.out.println("got here");
try
{
BufferedReader in = new BufferedReader(new FileReader(new File("sample-file.dat")));
System.out.println("File open successful!");
int line = 0;
for (String x = in.readLine(); x != null; x = in.readLine())
{
line++;
System.out.println(x);
if (line <= 3)
{
String[] tokens = x.split(" ");
System.out.println("Number of tokens in line " + line + ": " + tokens.length);
System.out.println("The tokens are:");
for (String token : tokens)
{
System.out.println(token);
}
}
else
{
String[] tokens = x.split("\\|");
System.out.println("Number of tokens in line " + line + ": " + tokens.length);
System.out.println("The tokens are:");
for (String token : tokens)
{
System.out.println(token);
}
Integer[] values = new Integer[tokens.length];
Integer sum = 0;
for (int i = 0; i < tokens.length; i++)
{
sum += Integer.parseInt(tokens[i]);
}
System.out.println("Sum: " + sum);
}
}
} catch (IOException e)
{
System.out.println("File I/O error!");
}
}
}
谢谢。
【问题讨论】:
-
已搜索。和 YouTubed。并在这里搜索。根据我所看到的一切,它应该可以工作。我发现唯一可能是问题在于它全部包含在 try/catch 中。但我不确定为什么这很重要。
-
您刚刚发布的代码对我来说运行良好。您是否收到异常或任何错误消息?
-
它可以编译,但是当我运行我的测试主程序时,光标会闪烁并且程序结束。没有任何反应,即使代码中有一堆 println。我想我的问题是如何从在单独的测试主文件中创建的 FileReadExample 对象中的 BufferedReader 对象调用数据。
-
刚刚整理好你的格式。我使用 java => stackoverflow 找到的最简单的方法是首先在您喜欢的编辑器中正确格式化它,然后将代码复制粘贴到一个新文件中,选择所有行并点击制表符/缩进以在您发布时将其识别为代码。然后从那里粘贴。
标签: java bufferedreader