Java 如何读取包含两个以奇怪格式编写的文档的txt文件?

Java 如何读取包含两个以奇怪格式编写的文档的txt文件?,java,hashtable,bufferedreader,information-retrieval,inverted-index,Java,Hashtable,Bufferedreader,Information Retrieval,Inverted Index,这是我的txt文件的外观: 我是如何阅读这两份文件中的“.I”和“.m”的 但是我没有得到任何结果,哈希表result=null。 是否有其他方法读取此txt文件 while(br.ready()) { String line = "" ; // br.readLine(); while ( (line= br.readLine()) != null) { //if line contains .I if (line.contains(".

这是我的txt文件的外观:

我是如何阅读这两份文件中的“.I”和“.m”的 但是我没有得到任何结果,哈希表result=null。 是否有其他方法读取此txt文件

while(br.ready())
{
    String line = "" ; // br.readLine();
    while ( (line= br.readLine()) != null)
    {
        //if line contains .I
        if (line.contains(".I"))
        {   //read the id and save it in id var
            String[] result = line.split("\\s");
            id = result [result.length - 1];
        }
        else if(line.contains(".M ")){
            String[] result = line.split("\\s");
            for(int i = 0; i < result.length; i++){
                if(!ht.containsKey(result[i]))
                {
                    ArrayList<tuple> temp = new ArrayList<tuple>();
                    int index = line.indexOf(result[i]);
                    tuple tmpTupl = new tuple(id+"", index+"");
                    temp.add(tmpTupl);
                    ht.put(result[i], temp);
                }
            }
while(br.ready())
{
String line=“”;//br.readLine();
而((line=br.readLine())!=null)
{
//如果行包含.I
如果(第行包含(“.I”))
{//读取id并将其保存在id变量中
字符串[]结果=line.split(\\s”);
id=结果[result.length-1];
}
else if(第行包含(“.M”)){
字符串[]结果=line.split(\\s”);
for(int i=0;i
行中没有任何单词。这些单词位于下一行,您可以忽略它。此外,我认为您需要
行.startsWith(“.I”)
。甚至可能需要
行.equals(“.M”)|行.startsWith(“.M”)
如果您不太确定
.M
后面是否有空格。我一直在看您的代码,但既不了解您的数据结构,也不了解代码的工作原理。也许更多的解释会有所帮助。当然有一种方法可以读取您的文本文件。@KlitosKyriacou是的,我想..您有没有办法读取您的文本文件下一行是什么?