2010-04-12 87 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設備上查看文件內容。

希望這有助於 - 道歉,如果我說明顯。