文件的保存和读取

来源:互联网 发布:苍空的解放者 知乎 编辑:程序博客网 时间:2024/04/30 04:26

 输入代码:


activity_main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="文件名称"/>    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/filename"/>    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="文件内容"/>    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:minLines="3"        android:id="@+id/filecontent"/>   <!--最少三行文字-->    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="保存"        android:id="@+id/button"/></LinearLayout>


MainActivity.java

package com.example.haige.filecaozuo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity{    protected void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button button=(Button)findViewById(R.id.button);        button.setOnClickListener(new ButtonClickListener());    }    private class ButtonClickListener implements View.OnClickListener {        @Override        public void onClick(View v)        {            EditText filenameText = (EditText) findViewById(R.id.filename);//查找文件名称文本框            EditText contentText = (EditText) findViewById(R.id.filecontent);//查找文件内容文本框            String filename = filenameText.getText().toString();            String content = contentText.getText().toString();            FileService service = new FileService(getApplicationContext());            try {                service.save(filename, content);                Toast.makeText(getApplicationContext(), "保存完成", Toast.LENGTH_SHORT).show();            }            catch (Exception e)            {                Toast.makeText(getApplicationContext(), "保存失败", Toast.LENGTH_SHORT).show();                e.printStackTrace();            }        }    }}

FileService.java

package com.example.haige.filecaozuo;import android.content.Context;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;/** * 保存文件功能类 * Created by haige on 2016/9/9. */public class FileService{    private Context context;    public FileService(Context Ccntext)//建立一个构造器,将初始文本置空    {        super();        this.context=context;    }    public void save(String filename, String content)throws Exception//将异常抛出到例外,Ativity中    {        //私有模式:创建出来的文件只能被本应用访问,其他应用无法访问该文件,另外采用私有模式创建的文件,写入文件的内容会覆盖原文件的内容        FileOutputStream outputStream=context.openFileOutput(filename,Context.MODE_PRIVATE);//建立输出流        outputStream.write(content.getBytes());//把文字转成二进制文件保存        outputStream.close();    }/*读取文件内容类 */    public String read(String filename)throws Exception    {        FileInputStream inStream=context.openFileInput(filename);//建立输入流读取文件        byte [] buffer=new byte[1024];        ByteArrayOutputStream OutStream=new ByteArrayOutputStream();//每次读入的数据都写入内存中        int len=0;        while((len=inStream.read(buffer))!=-1)//数据没有读完时        {           OutStream.write(buffer,0,len);//把数组中的数据写入内存        }        inStream.read(buffer);        byte []data=OutStream.toByteArray();//内存内容转为数组        return  new String(data);    }}

运行截图:



总结:

java 相关的IO还需要好好补补

0 0
原创粉丝点击