2010-04-12 55 views
3

我有点卡在一些必须非常简单的东西。我试着写几个变量到一个文件中,每一个在它自己的线,这样我就可以使用输入行中的另一种方法来读取变量回简单的Android文件输出问题

下面的代码:

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(); 
} 

}} 

该文件写入OK,但不是每个变量都在它自己的行上,而是只读出一行,“嗨,你在那里有人可以听到我说话”。

所以我想.newLine()不工作,但为什么?

对此问题有一个简单的答案或者更好的实现方法吗?

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

Joe

回答

7

你确定它不工作?你使用Windows?我想Android是一个基于UNIX的操作系统,正在编写\n而不是像Windows预计的\r\n。如果您输入adb shell然后cat /sdcard/file.txt,您会看到什么?

+1

啊!还有一些新的知识!你们是救生员!非常感谢! – 2010-04-12 20:17:04

+0

gr8 !!! bt如果我想要它2既是windows和linx? – Harinder 2011-08-08 11:03:44

1

如果这实际上只是一个历史悠久的UNIX/DOS换行字符差异的表现(即该文件正在基于Linux的Android设备上正确编写,但未正确呈现[在记事本中说]在Windows PC上),一个答案就是使用Vim(见http://www.vim.org/download.php)或其他能自动确定文件内容中的换行符(并根据需要保存为本地Windows/DOS格式)的应用程序在PC上查看文件。

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

希望这有助于 - 道歉,如果我说明显。