所以在这里我得到了可以读取文本文件的代码:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
public class ReadTextFile {
public static void main(String[] args) {
File file = new File("Test.txt");
StringBuffer contents = new StringBuffer();
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String text = null;
// repeat until all lines is read
while ((text = reader.readLine()) != null) {
contents.append(text).append(System.getProperty("line.separator"));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
// show file contents here
System.out.println(contents.toString());
}
}
好的,现在我需要我的文本文件(Test.txt)具有以下结构(示例):
topic:- <climate>subtopic1, <atmosphere_type>subtopic2
subtopic1:- <temperatures>sentence1, <gases>sentence2, <winds>sentence3
subtopic2:- <gas_composition>sentence4, <gravitational_weight>sentence5
sentence1:- temperatures are around 34ºC but they can reach -42ºC in winter
sentence2:- there are significant proportions of nitrogen (13%) and butane (24%)
sentence3:- there are permanent winds with gusts of 118 km/h
sentence4:- methane (48%), nitrogen (13%), butane (24%) and oxygen (12%)
sentence5:- gravity in ecuador is 7.95 atmospheres
我真正需要的是有 2 个JList
,在第一个JList
中我可以选择一个主题(如"气候"或"大气类型"),然后在第二个JList
中选择一个子主题(如果我选择"气候",那么我可以选择"温度"、"气体"或"风"),所以当我遇到JButton
时, 程序会向我显示相应的句子。做这样的事情很难吗?感谢您的帮助!:)
尝试从文件构建以下数据结构。
// map of a topic (or subtopic) name to a list of subtopic (or sentence) names
Map<String, List<String>> subtopics = new HashMap<String, List<String>>();
// The above will contain the entries:
// topic -> [subtopic1, subtopic2]
// subtopic1 -> [sentence1, sentence2, sentence3]
// subtopic2 -> [sentence4, sentence5]
// map of topic/sentence name to heading
Map<String, String> headings = new HashMap<String, String>();
// This will contain:
// subtopic1 -> climate
// subtopic2 -> atmosphere type
// sentence1 -> temperatures
// sentence2 -> gases
// sentence3 -> winds
// sentence4 -> gas composition
// sentence5 -> gravitational weight
// dictionary for looking up a sentence name and retrieving its corresponding text
Map<String, String> dict = new HashMap<String, String>();
// sentence1 -> temperatures are around 34ºC but they can reach -42ºC in winter
// sentence2 -> there are significant proportions of nitrogen (13%) and butane (24%)
// sentence3 -> there are permanent winds with gusts of 118 km/h
// sentence4 -> methane (48%), nitrogen (13%), butane (24%) and oxygen (12%)
// sentence5 -> gravity in ecuador is 7.95 atmospheres
这应该会让你朝着一个好的方向前进。需要注意的一点是,当第一次将主题添加到"子主题"映射时,您必须记住首先创建列表(例如 ArrayList),将子主题名称添加到列表中,并将列表作为主题名称的值。如果在列表中找到主题名称,只需将子主题名称添加到现有列表中即可。