我有点坚持一些必须简单易懂的东西。我正在尝试将一些变量写入一个文件,每个变量都在它自己的行上,这样我就可以在另一个方法中使用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()不起作用,但为什么?
这个问题是否有一个简单的答案或更好的方法来实现它?
谢谢大家,评论热烈赞赏。
乔
答案 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设备上查看文件内容,使用文本编辑器,例如市场上免费提供的“文本编辑”。
希望这会有所帮助 - 如果我说明显而已,请道歉。