android:文件保存系统

时间:2011-08-02 10:22:50

标签: android

我写了一个简单的文件保存系统。但它不起作用。我以前写过它并且它有效。可能我忘记了什么。有人能告诉我忘了什么吗? 谢谢! XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    android:id="@+id/hello"
    />
<Button android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:id="@+id/btn"
        android:text="save"
        android:layout_gravity="center_vertical|center_horizontal"/>
</LinearLayout>

的活动:

package com.android.savefiletest;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class SaveFileTestActivity extends Activity {
    /** Called when the activity is first created. */
    FileService file;
    TextView hello;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button btn = (Button)findViewById(R.id.btn);
        hello = (TextView)findViewById(R.id.hello);
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                try {
                    file.save("1.txt", hello.getText().toString());
                    Toast.makeText(SaveFileTestActivity.this, "success", 1).show();
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    Toast.makeText(SaveFileTestActivity.this, "error", 1).show();
                }
            }
        });
    }
}

FileService.java

package com.android.savefiletest;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import android.content.Context;

public class FileService{
    private Context context;

    public FileService(Context context) {
        this.context = context;

    }

    public void save(String filename, String content) throws Exception{
        FileOutputStream outStream = context.openFileOutput(filename, Context.MODE_PRIVATE);
        outStream.write(content.getBytes());
        outStream.close();
    }
}

2 个答案:

答案 0 :(得分:0)

Activity

您忘记初始化文件

添加

file = new FileService(this);

答案 1 :(得分:0)

如果你想保持这么简单,你可以去看看这个链接。

http://developer.android.com/guide/topics/data/data-storage.html

或最终使用此,

 File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard,"count.txt");

hours=Integer.toString(calendar.get(Calendar.HOUR_OF_DAY));
    minutes=Integer.toString(calendar.get(Calendar.MINUTE));
    seconds=Integer.toString(calendar.get(Calendar.SECOND));
    try {
        output = new BufferedWriter(new FileWriter(file));

    output.write(hours);
    output.flush();
    output.write(" ");
    output.flush();
    output.write(minutes);
    output.flush();
    output.write(" ");
    output.flush();
    output.write(seconds);
    output.close();
     } catch (IOException e1) {

        e1.printStackTrace();
    }