これが明らかな質問である場合は申し訳ありませんが、私には理解できないようです。データ構造コースの課題に取り組んでいます。単純な .dat ファイルからデータを取得する必要があります。これまで Java でファイル アクセス オプションを使用したことがなかったので、教授はその部分の実際のコードを提供してくれました。
呼び出されたクラスFileReadExample
は、新しいBufferedReader
オブジェクトを作成し、ファイルを開き、そのファイルに関する一連のデータを追い出すことになっています。しかし、どのデータにもまったくアクセスできません。
別のtestMain
ファイルで、という名前の新しいFileReadExample
オブジェクトを作成し、そこからfr
のようなものを印刷しようとしました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!");
}
}
}
ありがとう。