2012-07-18 67 views
0
String[] values = new String[] { "Android", "iPhone", "WindowsMobile", 
       "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X", 
       "Linux", "OS/2" }; 
     Log.d("list",TextUtils.join(",", values)); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, values); 
     setListAdapter(adapter); 

       String a="hi is"; 
       File myFile = new File("/sdcard/mysdcardfile.txt"); 
       try { 
        myFile.createNewFile(); 
       } catch (IOException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } 
       try { 
        //byte[] anotherArray = new byte[values.length]; 
        byte data[] = new byte[1024]; 
        int count; 
        long total = 0; 
        FileOutputStream output = new FileOutputStream(myFile); 
        while ((count = values.length) != -1) { 

         total += count; 
       // FileWriter fos = new FileWriter(myFile); 
       // BufferedWriter bis = new BufferedWriter(fos); 
        output.write(data, 0, count); 
        //bis.close(); 
        //fos.close(); 
        output.close(); 
        } 

這裏我的值以文本格式存儲在我的SD卡中,但是當我打開文本文件時,它包含bytes.here這些值存儲在byte.how中,當我寫入fileoutputstrem時將字節更改爲字符串我想獲取文本文件中的值。如何使用文本格式將字符串數組保存在SD卡中?

回答

0

讀取字節數組中的文件並將其轉換爲如下所示的字符串。

byte[] array = new byte[1000]; // 1000 is just given u can change it accordingly 
     String s= new String(array); 
+0

如何更改我的代碼? – Rajesh 2012-07-18 08:45:30

+0

包含從文件讀取的代碼。 – AAnkit 2012-07-18 08:54:28

0

爲什麼不使用SQLite數據庫或ContentProvider?

您可以使用DataOutputStream.writeUTF()和DataInputStream.readUTF(),因爲這些方法會將字符串的長度放在文件中,並自動回讀正確的字符數。

1

如果你想寫它作爲文本,那麼不要使用DataOutputStream。 Streams(InputStream和OutputStream)用於讀寫二進制數據,而不是文本。如果您想寫文字,請使用Writer而不是OutputStream。例如:

String[] array = ... // wherever you get this from; 

File file = new File("StringFile.txt"); 
PrintWriter out = new PrintWriter(new FileWriter(file)); 

// Write each string in the array on a separate line 
for (String s : array) { 
    out.println(s); 
} 


out.close(); 

不要忘了把

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 

在應用程序的清單文件。