我有一个 java 类,它使用缓冲读取器从文本文件中读取一些数据并将该数据作为 HashMap 返回:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
public class FrequencyLoader {
public FrequencyLoader() throws FileNotFoundException {
}
public HashMap<String, Double> loadUnigramFrequencies() throws FileNotFoundException, IOException {
HashMap<String, Double> unigramFrequencies = new HashMap<String, Double>();
String line;
String[] splittedLine;
BufferedReader bf = new BufferedReader(new FileReader("unigramFrequencies.txt"));
while ((line = bf.readLine()) != null) {
splittedLine = line.split("\\s");
unigramFrequencies.put(splittedLine[0].trim(), Double.parseDouble(splittedLine[1].trim()));
}
return unigramFrequencies;
}
}
我想在我的 android 应用程序中使用它,但是当我创建此类的实例并尝试在 android Activity 类中执行 loadUnigramFrequencies() 函数时,出现应用程序意外停止的错误。我正在尝试在 Samsung Galaxy S2 上运行它。文件应该放在 android 项目的某个地方而不是磁盘上吗?如果是那么在哪里?
最佳答案
如果没有一点 logcat,它就有点微不足道了。
unigramFrequencies.put(splittedLine[0].trim(), Double.parseDouble(splittedLine[1].trim()))
例如,如果 splittedLine[0] 或 splittedLine[1] 为空,这里可能会引发空指针执行,或者 parseDouble 可能会出现数字格式执行
关于android从文本文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7568795/