在Java中使用文件I/O

在Java中使用文件I/O,java,file,io,Java,File,Io,我正在尝试为这个夏天创建一个宠物项目,它需要大量的信息。我认为最好的方法是将所有数据存储在一个文本文件中,并在调用该文件时继续从该文件中提取必要的信息。不过,我的问题是,如何提取特定的信息集,然后将其中的一部分存储到数组中,或者存储到其他数据结构中,以便在程序执行期间更容易访问这些数据结构。文本文件将有数百(如果不是数千)个数据“集”,每个“集”将有多个部分。比如说, ID001 Name Data1 Data2 Data3 TypeData 其中ID001只是一个索引,名称是一个字符串,三

我正在尝试为这个夏天创建一个宠物项目,它需要大量的信息。我认为最好的方法是将所有数据存储在一个文本文件中,并在调用该文件时继续从该文件中提取必要的信息。不过,我的问题是,如何提取特定的信息集,然后将其中的一部分存储到数组中,或者存储到其他数据结构中,以便在程序执行期间更容易访问这些数据结构。文本文件将有数百(如果不是数千)个数据“集”,每个“集”将有多个部分。比如说,

ID001 Name Data1 Data2 Data3 TypeData 

其中ID001只是一个索引,名称是一个字符串,三个“数据”是整数,TypeData是一个字符串(例如)。获取所有这些信息(每个“集合”实际上会有更多的数据,但为了简单起见,让我们仅此而已)并将其分离,以便程序的不同部分可以使用每个部分的最佳方法是什么?这样做对吗?我最初设想的是电子表格,但我不知道如何使用类似的东西作为程序的I/O。

这里有一种可能的方法来读取文件并获取“块”:


您可以查看以了解其他想法。

java.util.Scanner有什么问题吗?我想象Scanner可以工作,但我同样不知道如何将数据集的每个部分分离为单独的可用数据。如果您想将结构化数据存储在文本文件中,也许你应该考虑使用XML。这似乎是一个显而易见的答案,现在我想起来了,不知道为什么以前从没想到过。有什么原因你不能使用数据库吗?
import java.io.*;
import java.util.Scanner;

public class ScanXan {
    public static void main(String[] args) throws IOException {

        Scanner s = null;

        try {
            s = new Scanner(new BufferedReader(new FileReader("xanadu.txt")));

            while (s.hasNext()) {
                System.out.println(s.next());
            }
        } finally {
            if (s != null) {
                s.close();
            }
        }
    }
}