API内部文件读取
直接上代码吧
尝试将项目复制后建一个新的项目,结果总是有问题,不过可以把原项目转换为新项目,方法如下:
1.项目右键在android tools 有个 rename application package选项,这是改包名的,改完这个就是两个不同的应用
2.要想两个工程共存在Eclipse下的话,就还要选中项目 按F2 就可以改 项目的名字。
主要解决在上一个文档中,路径data/data/com.swust.intern这个不能写错的问题,所以直接使用谷歌提供的API获取环境变量,防止读错。
getFilesDir(),返回一个文件路径:
data/data/com.swust.ApiIntern/files路径
修改前:
File file =new File("data/data/com.swust.intern/info.txt");
修改后:
File file =new File(getFilesDir(),"info.txt");
这样在data/data/com.swust.ApiIntern/files(多个文件夹)下便有了info.txt
代码:
package com.swust.intern; import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader; import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
import com.swust.APIintern.R; public class MainActivity extends Activity { private EditText et_name;
private EditText et_pwd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//已经是全局变量,应用启动时获取ID
et_name = (EditText) findViewById(R.id.et_name);
et_pwd = (EditText) findViewById(R.id.et_pwd); //应用启动后,读取存档的用户名和密码
readAccount();
}
public void readAccount(){
//File file =new File("data/data/com.swust.intern/info.txt");
File file =new File(getFilesDir(),"info.txt");
//判读文件是否存在
if(file.exists()){
try{
FileInputStream fis =new FileInputStream(file);
//把字节流转化为字符流
BufferedReader br =new BufferedReader(new InputStreamReader(fis));
//读取txt文件的用户名和密码
//读取一行
String text =br.readLine();
//使用“##”标识切割,得到字符串数组
String[] s = text.split("##"); et_name.setText(s[0]);
et_pwd.setText(s[1]); }catch (Exception e){
e.printStackTrace();
}
} }
public void login(View v){ CheckBox cb = (CheckBox)findViewById(R.id.cb);
String name=et_name.getText().toString();
String pwd =et_pwd.getText().toString();
//判读复选框是否被勾选
if(cb.isChecked()){
//"data/data/com.swust.intern"是内部存储空间路径
//File file =new File("data/data/com.swust.intern/info.txt");
File file =new File(getFilesDir(),"info.txt");
FileOutputStream fos;
try{
fos = new FileOutputStream(file);
//加“##”是为了读取时好分割
fos.write((name + "##" +pwd).getBytes());
fos.close();
}catch (Exception e){
e.printStackTrace();
}
}
//System.out.println("登陆成功");
//创建吐司对话框
/* 第一个参数上context,而activity本来就是context的子类,所以直接填this*/
/*第三个参数为持续显示时间,只有LENGTH_SHORT(2S)和LENGTH_LONG(5s)两种选择*/
/*Toast t= Toast.makeText(this, "登陆成功", Toast.LENGTH_SHORT);
//显示吐司对话框
t.show();*/ Toast.makeText(this, "登陆成功", Toast.LENGTH_SHORT).show();
}
}
API内部文件读取的更多相关文章
- Android_内部文件读取
我们这里做一个安卓的简易的文件读取程序之记住密码 首先我们先明确安卓的存储路径, 所有安装至手机的应用都会在 data/data 目录下生成一个安卓文件夹(包名),这个文件夹就是安卓存储的路径 在运行 ...
- android 内部文件读取
Android 文件管理方法 Android使用的是基于Linux的文件系统,对于文件的訪问和管理是通过权限设置来限制的. 在Linux系统中,文件权限分别描写叙述了创建者.同组用户和其它用户对文件的 ...
- 通过 File API 使用 JavaScript 读取文件
原文地址:http://www.html5rocks.com/zh/tutorials/file/dndfiles/ 简介 HTML5 终于为我们提供了一种通过 File API 规范与本地文件交互的 ...
- C# 通过api函数GetPrivateProfileString读取ini文件,取不到值
通过api函数GetPrivateProfileString读取ini文件,取不到值,测试了好长时间,都不行 确认程序,ini文件都没有错误的情况,最后发现是ini文件编码的原因. 将ini文件的编码 ...
- FileReader文件读取API
:用来把文件读入内存,并且读取文件中的数据.FileReader接口提供了一个异步API,使用该API可以在浏览器主线程中异步访问文件系统,读取文件中的数据. 1.FileReader接口的方法 Fi ...
- Android简单介绍SharedPreference,内部文件,sdcard数据存储
SharedPreference 以xml的结构储存简单的数据,储存在data/data/程序包名/shared_prefs文件夹中 使用方式 创建对象的方式有三种 Context 的 getShar ...
- 详解Js中文件读取机制
前言,文件读取是提高应用体验度的必须接口,应用场景中需求很频繁. Js处理文件读取,由于处于安全方面的考虑,在2000年以前,都是以“<input type="file"&g ...
- H5学习系列之文件读取API--本文转自http://blog.csdn.net/jackfrued/article/details/8967667
HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型. FileReader的使用方式非常简 ...
- 使用 JavaScript File API 实现文件上传
概述 以往对于基于浏览器的应用而言,访问本地文件都是一件头疼的事情.虽然伴随着 Web 2.0 应用技术的不断发展,JavaScript 正在扮演越来越重要的角色,但是出于安全性的考虑,JavaScr ...
随机推荐
- 严重: Servlet.service() for servlet jsp threw exception java.lang.IllegalStateException: getOutputStream() has already been called for this response
严重: Servlet.service() for servlet jsp threw exception java.lang.IllegalStateException: getOutputS ...
- onchange、oninput、onpropertyChange事件的异同
onchange事件适用于input\textarea\select元素上,支持各大浏览器,该事件只有在键盘或者鼠标操作改变对象属性,且失去焦点时触发,脚本触发无效: oninput事件适用于inpu ...
- iOS 之UICollectionView 之原理介绍
0. 简介 参考:支持重排的iOS9 UICollectionView 参考:http://www.cnblogs.com/langtianya/p/3902801.html 参考:http://ww ...
- DateFormat 竟然是非线程安全的?!!!!!
今天撸代码忽然发现一个奇怪的一场抛出,经过一番排查发现有可能DateFormat 的多线程问题造成的,网上一查DateFormat竟然非线程安全.那我原先的代码...(细思极恐)
- 菊花加载第三方--MBprogressHUD 分类: ios技术 2015-02-05 19:21 120人阅读 评论(0) 收藏
上次说到了网络请求AFN,那么我们在网络请求的时候,等待期间,为了让用户不认为是卡死或程序出错,一般都会放一个菊花加载,系统有一个菊花加载类叫UIProgressHUD.但是我今天要说的是一个替代它的 ...
- BZOJ2733 [HNOI2012]永无乡 【线段树合并】
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- 【python之路11】集合数据类型(set)
集合数据类型(set):集合是不重复的无需序列 1.集合数据类型的创建 a = {11,22,33} #或 a = set() #创建空集合,不能用a={},这样创建的是字典类型 2.集合转换(将可迭 ...
- Git Flow——Git团队协作最佳实践
规范的Git使用 Git是一个很好的版本管理工具,不过相比于传统的版本管理工具,学习成本比较高. 实际开发中,如果团队成员比较多,开发迭代频繁,对Git的应用比较混乱,会产生很多不必要的冲突或者代码丢 ...
- XML解析之SAX解析技术案例
Java代码: package com.xushouwei.xml; import java.io.File; import java.io.IOException; import java.text ...
- SQL迅速增加表中记录语句
很多时候我么需要为表中疯狂增加N条记录,那么我们该使用什么语句实现该功能呢?如下: insert into 表名(字段1,字段2,字段3....) select 字段1,字段2,字段3.... fr ...