私はこの形式のtxtファイルをいくつか持っており、それらを読み込んで情報を収集する必要があります。Java BufferedReaderを使ってこの形式のtxtファイルを読む方法
FILE1.TXT: FILE2.TXT:私だけに、それは文字列に「ファイルを」保存することができます「ファイル」セクション、およびそのすべてのサブコンテンツを読みたい
別の文字列。
(例えば、FILE1.TXT :)
String file = "file";
に私はすべてのサブコンテンツを読んでようになり、別の文字列に保存するforループを書きたい:
for (int i = 0; i < numberOfSubcontentLines; i++){
sub = sub + br.readLine() + ", ";
}
私にとっては難しいのは、異なるtxtファイルにはサブコンテンツの行が異なっていることです。これらの行をどのように読み込むのかはわかりませんので、どちらの場合でもこの方法を使用できます。
現在のコードは、私が試した:それは私が望んで取得していない
public void readFile(String fileLocation) throws IOException {
fileMap = new HashMap<>();
FileReader reader = new FileReader(fileLocation);
BufferedReader br = new BufferedReader(reader);
String line;
String file;
// Assign a temp value to save the sub-content
String temp = "";
while ((line=br.readLine()) != null) {
if(line.contains("file")){
file = "file";
// Skip the next line
br.readLine();
// save all the sub-contents
do {
temp = temp + br.readLine() + ", ";
} while(br.readLine().contains("****"));
}
}
fileMap.put(file, temp);
System.out.println(fileMap);
}
。任意の提案やアイデア? Tkxは進歩した。
おそらく、あなたはメソッドを作成しています。メソッドへのインプットは何ですか? (私はファイル名を推測していますが、他の部分はファイルの "セクション"名かもしれません。あなたの例では、これは "ファイル"かもしれませんが、読みたい場合は "apple" 「リンゴ」セクション)。望ましい出力は何でしょうか?ファイル形式について何が仮定できますか? –
まず、このコードを自分で作成し、コードを試して、動作中のプログラムを試してみてください。それが失敗した場合は、より具体的な質問をして、このコードの試行(コンパクトで実行可能な完全なプログラム)を表示することができます。この試みがなければ、あなたの質問はコードの要求になりますが、これは許されません。あなたの知識とスキルを考えれば、あなたはこれを解決するか、まともな試み(と紙面上に書かれたコードフローの論理を書き留めている)を使って解決策にかなり近づけることができます。 –
あなたはあまりにも多くの異なる場所の行を読み込んでおり、正しく処理することはできません。代わりに、ステートマシンを作成する必要があります。これは、ラインを読み込むための場所の束ではなく、1つのwhileループです(ステートマシンにラインを送ります。ステートマシンは、ステートマシンに応じてさまざまな方法でラインを処理します)。 –