简单的Android文件输出问题

时间:2010-04-12 20:07:51

标签: android file newline

我有点坚持一些必须简单易懂的东西。我正在尝试将一些变量写入一个文件,每个变量都在它自己的行上,这样我就可以在另一个方法中使用readLine来重新读取变量。

以下是代码:

package com.example.files2;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Environment;
import android.widget.Toast;

public class files2 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    String string1 = "Hey you";
    String string2 = "Is there anybody there";
    String string3 = "Can you hear me";

    setContentView(R.layout.main);

    try{

    File file = new File(Environment.getExternalStorageDirectory(), "file.txt");


    BufferedWriter writer = new BufferedWriter(new FileWriter(file));
    writer.write(string1);
    writer.newLine();
    writer.write(string2);
    writer.newLine();
    writer.write(string3);
    writer.newLine();
    writer.flush();
    writer.close();

} catch (IOException e) {
    e.printStackTrace();
}

}}

该文件写得很好,但是不是每个变量都在它自己的行上,我只得到一行“你好,那里有人,你能听见我”。

所以我猜.newLine()不起作用,但为什么?

这个问题是否有一个简单的答案或更好的方法来实现它?

谢谢大家,评论热烈赞赏。

2 个答案:

答案 0 :(得分:7)

你确定不行吗?你在使用Windows吗?我想Android是一个基于UNIX的操作系统,正在编写\n而不是像Windows期望的\r\n。如果您输入adb shell然后cat /sdcard/file.txt

,您会看到什么?

答案 1 :(得分:1)

如果这是 - 实际上 - 只是一个古老的UNIX / DOS换行字符差异的表现(即该文件正在基于Linux的Android设备上正确写入但未正确呈现[比如在记事本中]一台Windows PC)然后一个答案是使用Vim(参见http://www.vim.org/download.php)或其他可以自动确定文件内容中换行符的应用程序在PC上查看文件(如果是,则保存为本机Windows / DOS格式需要)。

另一种方法是直接在Android设备上查看文件内容,使用文本编辑器,例如市场上免费提供的“文本编辑”。

希望这会有所帮助 - 如果我说明显而已,请道歉。