一般的输入输出流保存数据进文件

1、视图

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context=".MainActivity" >
10
11     <EditText
12         android:id="@+id/et_username"
13         android:layout_width="wrap_content"
14         android:layout_height="wrap_content"
15         android:layout_alignParentLeft="true"
16         android:layout_alignParentTop="true"
17         android:layout_marginLeft="20dp"
18         android:layout_marginTop="22dp"
19         android:ems="10" >
20
21
22     </EditText>
23
24     <EditText
25         android:id="@+id/et_password"
26         android:layout_width="wrap_content"
27         android:layout_height="wrap_content"
28         android:layout_alignLeft="@+id/et_username"
29         android:layout_below="@+id/et_username"
30         android:layout_marginTop="44dp"
31         android:inputType="textPassword"
32         android:ems="10" />
33
34     <Button
35         android:onClick="login"
36         android:id="@+id/button1"
37         android:layout_width="wrap_content"
38         android:layout_height="wrap_content"
39         android:layout_alignBaseline="@+id/cb"
40         android:layout_alignBottom="@+id/cb"
41         android:layout_alignParentRight="true"
42         android:layout_marginRight="32dp"
43         android:text="@string/login" />
44
45     <TextView
46         android:id="@+id/textView1"
47         android:layout_width="wrap_content"
48         android:layout_height="wrap_content"
49         android:layout_alignLeft="@+id/et_username"
50         android:layout_alignParentTop="true"
51         android:text="@string/please_input_username"
52         android:textSize="14sp"/>
53
54     <TextView
55         android:id="@+id/textView2"
56         android:layout_width="wrap_content"
57         android:layout_height="wrap_content"
58         android:layout_alignLeft="@+id/et_password"
59         android:layout_below="@+id/et_username"
60         android:layout_marginTop="24dp"
61         android:text="@string/please_input_password"
62         android:textSize="14sp" />
63
64     <CheckBox
65         android:checked="true"
66         android:id="@+id/cb"
67         android:layout_width="wrap_content"
68         android:layout_height="wrap_content"
69         android:layout_alignLeft="@+id/et_password"
70         android:layout_below="@+id/et_password"
71         android:layout_marginTop="27dp"
72         android:text="@string/is_remeber_password" />
73
74 </RelativeLayout>

2、activity代码

 1 package com.example.login;
 2
 3 import java.util.Map;
 4
 5 import com.example.login.service.LoginService;
 6
 7 import android.os.Bundle;
 8 import android.app.Activity;
 9 import android.text.TextUtils;
10 import android.view.Menu;
11 import android.view.View;
12 import android.widget.CheckBox;
13 import android.widget.EditText;
14 import android.widget.Toast;
15
16 public class MainActivity extends Activity {
17
18     private EditText et_username;
19     private EditText et_password;
20     private CheckBox cb;
21     @Override
22     protected void onCreate(Bundle savedInstanceState) {
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.activity_main);
25         et_username = (EditText)findViewById(R.id.et_username);
26         et_password = (EditText)findViewById(R.id.et_password);
27         cb = (CheckBox)findViewById(R.id.cb);
28
29         Map<String,String> map = LoginService.getUserInfo(this);
30         if(map != null){
31             et_username.setText(map.get("username"));
32             et_password.setText(map.get("password"));
33         }
34     }
35
36     public void login(View view)
37     {
38         String username = et_username.getText().toString().trim();
39         String password = et_password.getText().toString().trim();
40         if(TextUtils.isEmpty(username) || TextUtils.isEmpty(password)){
41             Toast.makeText(this, "用户名或者密码不能为空", Toast.LENGTH_SHORT).show();
42             return;
43         }
44
45         if(cb.isChecked()){
46             //保存用户信息
47             boolean result = LoginService.savaUserInfo(this,username, password);
48             if(result){
49                 Toast.makeText(this, "保存用户信息成功!", Toast.LENGTH_SHORT).show();
50             }else{
51                 Toast.makeText(this, "保存用户信息失败!", Toast.LENGTH_SHORT).show();
52             }
53         }
54
55         if("zhangsan".equals(username) && "123".equals(password)){
56             Toast.makeText(this, "登陆成功!", Toast.LENGTH_SHORT).show();
57         }else{
58             Toast.makeText(this, "用户名或者密码不正确!", Toast.LENGTH_SHORT).show();
59         }
60     }
61
62
63 }

3、采用普通输入输出流保存数据

 1 package com.example.login.service;
 2
 3 import java.io.BufferedReader;
 4 import java.io.File;
 5 import java.io.FileInputStream;
 6 import java.io.FileNotFoundException;
 7 import java.io.FileOutputStream;
 8 import java.io.InputStreamReader;
 9 import java.util.HashMap;
10 import java.util.Map;
11
12 import android.content.Context;
13
14 public class LoginService {
15     public static boolean savaUserInfo(Context context, String username, String password)
16     {
17         try{
18             //File file = new File("/data/data/com.example.login/info.txt");
19             File file = new File(context.getFilesDir(),"info.txt");
20             FileOutputStream fos = new FileOutputStream(file);
21             fos.write((username + "##" + password).getBytes());
22             fos.close();
23             return true;
24         }catch(Exception e){
25             e.printStackTrace();
26             return false;
27         }
28     }
29
30     public static Map<String,String> getUserInfo(Context context)
31     {
32         File file = new File(context.getFilesDir(),"info.txt");
33         try{
34             FileInputStream fis = new FileInputStream(file);
35             BufferedReader br = new BufferedReader(new InputStreamReader(fis));
36             String str = br.readLine();
37             String[] infos = str.split("##");
38             Map<String,String> map = new HashMap<String,String>();
39             map.put("username", infos[0]);
40             map.put("password", infos[1]);
41             return map;
42         }catch(Exception e){
43             e.printStackTrace();
44             return null;
45         }
46     }
47
48 }
时间: 2024-11-07 21:33:37

一般的输入输出流保存数据进文件的相关文章

C#保存数据到文件

//======================================================= //保存数据到文件 //======================================================= /// <summary> /// 保存数据data到文件,返回值为保存的文件名 /// </summary> public string SaveToFile(String data, String name, bool mute)

Java 演示如何用标准的输入输出流重定向到一个文件

最近,在学习Java,并且学习到了Java的IO(输入与输入),什么是Java IO呢? IO流位于java.io包中,根据操作数据不同,分为字节流和字符流:根据数据输入方面的不同又可分为输入流和输出流,无论是何种流,最终都依赖于操作系统.一.字节流:1.字节流,主要用于图片.音频.视频的传输,以二进制的形式进行,分为字节输入流和字节输出流:字节流操作的是字节数组:字符流操作的是字符数组.2.字节输入与字节输出流的继承体系图 InputStream 常用方法方法声明功能描述int read()从

【Java】利用文件输入输出流完成把一个文件夹内的所有文件拷贝的另一的文件夹的操作

一.基本目标 使用Java完成如下的操作: 把一个文件夹内的所有文件拷贝的另一的文件夹,例如,在F盘中有a与b两个文件夹: f:/a里面有一堆文件,运行Java程序之后就会全部复制到f:/b,并且完成重命名,在所有文件之前加rename_的前缀,如果里面有文件夹,则文件夹不重命名,里面的文件进行重命名,同样在所有文件之前加rename_的前缀: 二.制作过程 1.首先主函数非常简单,就是调用了上面FileTest类中的copyFolder函数 public class FileCopy { pu

Android 中保存数据到文件中

1.在安卓开发中,会遇到保存数据到手机中以及从手机中获取数据的情况 /** * 把数据存放到手机内存中 * * @param number * @param password * @return */ public static boolean saveUserInfo(Context context, String number, String password) { try { // getCacheDir()方法用于获取/data/data/<package name>/cache目录

JAVA输入/输出流程序例题(文件和目录、字节流、字符流)

一.文件和目录 1.显示文件的基本信息. 2.显示目录的基本信息. 3.在指定目录下创建单个文件. 4.指定目录下创建多个临时文件. 二.字节流 1.生成ZIP压缩文件 2.解压缩zip文件 3.生成Excel文件 4.读取excel文件 5.生成PDF文件 6.读取PDF文件中的内容 7.利用poi读取Word文件中的内容. 三.字符流 1.追加文件内容 2.读取jar包内容 3文件的加密/解密操作 JAVA加包+++右键项目+BuildPath+Add External Achievees.

保存数据到文件的模块(configparser,json,pickle,shelve,xml)_python

一.各模块的主要功能区别 configparser模块:保存字典内容到文件,并按照一定的格式写入文件保存. shelve模块:将对象写入到文件,保存没有格式,较为轻便. json模块:将对象从内存中完成序列化存储,但是不能对函数和类进行序列化,写入的格式是明文. pickle模块:将对象从内存中完成序列化存储,可以能对函数进行序列化,写入的格式是二进制格式. xml模块:不同语言或程序之间数据交换(较少用) 二.各模块使用例子 1.configparser模块 (1)写入文件 import co

通过字节输入输出流,对标识文件读写,并按规定输出

/** * 创建用户类额 * @author square 凉 * */public class User { private String userName; private String password; private String Name; public String getUserName() {  return userName; } public void setUserName(String userName) {  this.userName = userName; } p

阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_4_字节输出流写入数据到文件

数据由内存写入到硬盘中 构造函数传的路径是一个相对路径.有异常需要捕获异常 释放资源 这三个方法,都有异常 IO异常是父类,所以这里只需要抛出IO异常就可以了. 运行程序.目录内多了个a.txt文件 大小是一个字节 原文地址:https://www.cnblogs.com/wangjunwei/p/11267047.html

输入输出流(I/O)

一.流概述 流是一组有序的数据序列,根据操作的类型,可分为输入流和输出流两种.I/O流提供了―条通道程序,可以使用这条通道把源中的字节序列送到目的地,虽然I/O流经常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘鼠标.内存或显示器窗口等. Java由数据流处理输入输出模式,程序从指向源的输入流中读取源中的数据.源可以是文件.网络.压缩包或者其他数据源. 输出流的指向是数据要到达的目的地,程序通过向输出流中写入数据把信息传递到目的地.输出流的目标可以是文件.网络.压缩包.控制台和其他数据输出