【问题标题】:Android adding multiple lines to file internal stroageAndroid向文件内部存储添加多行
【发布时间】:2016-06-22 06:25:09
【问题描述】:

我有一个简单的游戏应用程序,它有 3 个位置的记分牌,我需要保存数据。我不确定是否应该将其保存在外部或内部存储中。我已经设法在外部保存了一个 csv 文件,但是在测试时我发现它在所有设备上都不起作用。我现在正在考虑将数据保存在内部存储中,并查看以下标准文件保存代码。

String FILE_NAME = "file.txt";
    try {
        FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE);
fos.write(someText.toString().getBytes());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}  

该类不提供任何 nextLine() 方法。

我的问题是我应该使用外部存储还是内部存储,如果我使用内部存储,我该如何分隔每一行?

【问题讨论】:

  • 您在这里至少混淆了三件事。内部与外部存储对您写入数据的方式没有影响; FileOutputStream 用于写入数据,而不是读取,因此没有明智的方法可以提供 nextLine() 方法。
  • 建议:使用SharedProperties。 - 如果您不想这样做,请熟悉 FileOutputStreamFileInputStreamWriterReaderBufferedWriterBufferedReader,用于基于字符串(行)的文件 IO。
  • FileInputStream 与您的问题完全无关。

标签: java android io fileoutputstream


【解决方案1】:

写作:

String FILE_NAME = "file.txt";
try {
    FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE);
    PrintWriter writer = new PrintWriter( new OutputStreamWriter( fos ) );
    writer.println(someText.toString());
    writer.println(someOtherText.toString());
    writer.close();
} catch (Exception e) {
    e.printStackTrace();
}  

阅读:

String FILE_NAME = "file.txt";
try {
    FileInputStream fis = openFileInput(FILE_NAME, Context.MODE_PRIVATE);
    BufferedReader reader = new BufferedReader( new InputStreamReader( fis ) );
    String line;
    while ( (line = reader.readLine()) != null ) {
        System.out.println("Read line: " + line);
    } 
    reader.close();
} catch (Exception e) {
    e.printStackTrace();
}  

【讨论】:

  • 这就是我正在寻找的一个简单的包装器来解析数据,干杯
  • 没有writeln()这样的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-01
  • 2023-03-10
  • 2020-09-13
相关资源
最近更新 更多