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 卡中。但是当我打开文本文件时,它包含字节。这里的值存储在字节中。当我写文件输出流时如何将字节更改为字符串。我想得到文本文件中的值。

4

3 回答 3

1

如果要将其写为文本,请不要使用DataOutputStream. 流(InputStream 和 OutputStream)用于读取和写入二进制数据,而不是文本。如果要编写文本,请使用 aWriter而不是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>

在应用程序的清单文件中。

于 2012-07-18T08:51:42.140 回答
0

读取字节数组中的文件并将其转换为字符串,如下所示。

    byte[] array = new byte[1000]; // 1000 is just given u can change it accordingly
      String s= new String(array);
于 2012-07-18T08:39:00.253 回答
0

为什么不使用 SQLite 数据库或 ContentProvider ?

您可以使用 DataOutputStream.writeUTF() 和 DataInputStream.readUTF() 代替,因为这些方法将字符串的长度放入文件中并自动读回正确数量的字符。

于 2012-07-18T08:41:06.823 回答