【发布时间】:2011-05-04 10:32:46
【问题描述】:
我正在尝试从文本文件中读取数据并将各种数据类型存储到变量中。 假设txt文件格式如下;
1000 1
b 2000 2
c 3000 3
现在,我正在尝试将字符存储到单独的变量中,将整数存储到单独的变量中。
到目前为止,我的尝试涉及我将文本文件读入字符串,然后使用字符串标记器将每个元素存储到数组列表中。我对如何执行此操作有一个大致的了解;检查列表中的元素是否是字符,如果是,则将其存储到字符变量中,否则如果它是整数,则将其存储到 int 中。 但是,我不熟悉识别某事物是字符串还是整数的方法,例如 isString、isInteger 等。有人能给我一些建议吗?
我的代码如下:
public class copyToString {
public static void main(String[] args) {
String fileSpecified = args[0];
fileSpecified = fileSpecified.concat(".txt");
char [] content = new char[1024];
System.out.println ("file Specified = " + fileSpecified);
String container;
ArrayList <String> words = new ArrayList<String> ();
try {
FileReader fr = new FileReader (fileSpecified);
BufferedReader br = new BufferedReader (fr);
StringBuilder builder = new StringBuilder();
int read = 0;
while ((read = br.read(content, 0, content.length)) > 0) {
builder.append(content, 0, read);
}
container = builder.toString();
StringTokenizer tokenizer = new StringTokenizer (container);
while (tokenizer.hasMoreTokens()) {
words.add(tokenizer.nextToken());
}
fr.close();
} catch (IOException e) {
System.out.println (e.getMessage());
}
for (int i = 0; i < words.size(); i++) {
System.out.println ("words = " + words.get(i));
}
}
}
谢谢
【问题讨论】:
-
你可以使用 Scanner - 它真的比 StringTokenizer 更简单。有一点不清楚。您是说输入文件格式是已知的并给出示例,那么为什么要以编程方式识别变量类型?
-
感谢 Lukasz,扫描仪实际上更简单,它也可以节省我的时间。我给出的输入文件格式只是我们为一项任务提供的众多示例中的一个。我必须分别考虑字符和整数,因为我将以不同的方式处理它们。这个答案是你预期的吗?
标签: java text-files