android 40 Io编程

Io编程:内存卡和sd卡。字符串存入内存卡然后读出来。

activity:

package com.sxt.day06_06;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
    EditText met;//文本框
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        setListener();
    }
    private void setListener() {
        setSaveDataClickListener();
        setReadDataClickListener();
    }
    private void setReadDataClickListener() {
        findViewById(R.id.btnReadData).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                FileInputStream in =null;
                try {
                    in= openFileInput("file.dat");
                    byte[] data=new byte[1024];
                    int len = in.read(data);//返回实际读取的字节数
                    String text=new String(data, 0, len, "utf-8");
                    Toast.makeText(MainActivity.this, text, 3000).show();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }finally{
                    if(in!=null){
                        try {
                            in.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        });
    }
    private void setSaveDataClickListener() {
        findViewById(R.id.btnSaveData).setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                FileOutputStream out = null;
                try {
                    out=openFileOutput("file.dat", MODE_PRIVATE);
                    String text=met.getText().toString();
                    byte[] data=text.getBytes("utf-8");//FileOutputStream时data要转换为字节数组
                    out.write(data);
                    out.flush();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }finally{
                    if(out!=null){
                        try {
                            out.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        });
    }
    private void initView() {
        met=(EditText) findViewById(R.id.et);
    }
}

页面

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <EditText
        android:id="@+id/et"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:text="哈罗,张飞!"/>
    <Button
        android:id="@+id/btnSaveData"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="保存数据" />

    <Button
        android:id="@+id/btnReadData"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="读取数据" />

</LinearLayout>
时间: 2024-12-06 03:11:48

android 40 Io编程的相关文章

Android中多线程编程(四)AsyncTask类的详细解释(附源码)

Android中多线程编程中AsyncTask类的详细解释 1.Android单线程模型 2.耗时操作放在非主线程中执行 Android主线程和子线程之间的通信封装类:AsyncTask类 1.子线程中更新UI 2.封装.简化异步操作. 3.AsyncTask机制:底层是通过线程池来工作的,当一个线程没有执行完毕,后边的线程是无法执行的.必须等前边的线程执行完毕后,后边的线程才能执行. AsyncTask类使用注意事项: 1.在UI线程中创建AsyncTask的实例 2.必须在UI线程中调用As

Java 之文件IO编程 之读取

1 package com.sun; 2 /* 3 * 这里是对文件IO流读取的操作 4 * 2014-08-10 5 */ 6 import java.io.*; 7 public class File_test { 8 9 10 public static void main(String[] args) { 11 //创建一个文件对象 12 FileInputStream fis=null; 13 14 File srcFile = new File("d:\\aa.txt");

JAVA入门到精通-第46讲-IO编程.记事本开发

IO编程-记事本开发 fis.read(bytes) 字节数组: 通过fis把文件里面的1800个字符,尽可能的读, 最多读1024个.记录一下,0-1024记录到bytes; 再去读的首,fis.read试图1024个字节,不够了, 第二次读了776个,n=776:(0,776): 第三次,又准备读1024,这次一个读不到,返回-1: 退出循环: JMenuBar 菜单条是一个JMenuBar: JMenu File是一个JMenu; JMenuItem 下面这些选项是JMenuItem; 一

Python IO编程——StringIO & BytesIO

1.1   StringIO & BytesIO 1.1.1   StringIO StringIO顾名思义就是在内存中读写str. 写StringIO >>> fromio import StringIO >>> f = StringIO() >>> f.write('hello') 5 >>> f.write(' ') 1 >>> f.write('world!') 6 >>> f.ge

Android 的网络编程

android的网络编程分为2种:基于socket的,和基于http协议的. 基于socket的用法 服务器端: 先启动一个服务器端的socket     ServerSocket svr = new ServerSocket(8989); 开始侦听请求 Socket s = svr.accept(); 取得输入和输出 DataInputStream dis = new DataInputStream(s.getInputStream()); DataOutputStream dos = new

IO编程——转自廖雪峰博客

IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口. 比如你打开浏览器,访问新浪首页,浏览器这个程序就需要通过网络IO获取新浪的网页.浏览器首先会发送数据给新浪服务器,告诉它我想要首页的HTML,这个动作是往外发数据,叫Output,随后新浪服务器把网页发过来,这个动作是从外面接收数据,叫Input.所以,通常,程序完成IO操作会有Input和Output两个数

Android开发经典书籍下载——《Android 4高级编程》《疯狂Android讲义》《Android应用开发详解(郭宏志)》《Android应用案例开发大全》《Android 3D游戏开发技术》

这是我收集的关于android开发方面的经典书籍,高清PDF电子版,可以在我的百度网盘免费下载,希望对需要的朋友有帮助. 目录: <Android 4高级编程>(附完整源代码) <疯狂Android讲义> <Android应用开发详解(郭宏志)> <Android应用案例开发大全> <Android 3D游戏开发技术> <Android内核剖析 柯元旦> <深入理解Android  卷1> <深入理解Android

python学习过程之IO编程

IO编程 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口. 由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题.两种处理方法同步IO和异步IO. 很明显,使用异步IO来编写程序性能会远远高于同步IO,但是异步IO的缺点是编程模型复杂,反正异步IO的复杂度远远高于同步IO. 操作IO的能力都是由操作系统提供的,每一种编程语

meta对象写入json错误:com.cutt.zhiyue.android.api.io.exception.JsonFormaterException: com.fasterxml.jackson.databind.JsonMappingException

首先说明出现的原因:json这个东西不够智能,在解析javabean对象中的getter和setter方法时,会把两个方法命名十分相近的方法当成一个.从而形成异常. 解决办法:重新命名方法名. 同时需要注意:json在写入某一个meta对象时,会将其所关联的meta对象统统捋一遍(不一定是重置,可能仅仅是遍历一下). 这是我们的json写入异常: com.cutt.zhiyue.android.api.io.exception.JsonFormaterException: com.fasterx