内部存储 openFileInputStream openFileOutputStream
package com.qianfeng.gp08_day24_internalstorage; import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays; import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText; /**
* 内部存储: SharedPreferences属于内部存储
* openFileOutput() openFileInput()
* 其实还是以文件的形式存储数据,IO
* /shared_prefs/
* 内部存储的文件的存放位置 /data/data/(包名)/files/
*
*/
public class MainActivity extends Activity { private EditText edit_fileName,edit_content; //点击菜单项,弹出对话框,列出所有的内部存储空间中的文件
private AlertDialog fileDialog;
private ArrayAdapter<String> adapter; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); edit_fileName = (EditText) findViewById(R.id.edit_fileName);
edit_content = (EditText) findViewById(R.id.edit_fileContent); initDialog();
} //初始化对话框的功能
public void initDialog()
{
adapter = new ArrayAdapter<String>(this,R.layout.item_layout);
//得到内部存储空间中的所有的文件名 fileList()
adapter.addAll(Arrays.asList(fileList())); fileDialog = new AlertDialog.Builder(this)
.setTitle("文件选择对话框")
.setIcon(R.drawable.ic_launcher)
.setAdapter(adapter, new OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
//得到文件名
String filename = adapter.getItem(which);
edit_fileName.setText(filename);
// 读取文件
try {
readData(null);
} catch (IOException e) {
e.printStackTrace();
}
}
})
.create(); } public void saveFile(View v) throws IOException//把数据保存到内部存储空间的文件中
{
//获取文件名和文件内容
String filename = edit_fileName.getText().toString().trim();
String filecontent = edit_content.getText().toString().trim(); FileOutputStream fos = openFileOutput(filename, Context.MODE_PRIVATE);
fos.write(filecontent.getBytes()); fos.close();
} public void readData(View v) throws IOException
{
//获取被读取的文件名
String filename = edit_fileName.getText().toString().trim(); //读取文件
FileInputStream fis = openFileInput(filename);
byte[] arr = new byte[fis.available()];
int len = fis.read(arr);
edit_content.setText(new String(arr,0,len));
fis.close();
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId()==R.id.action_selectFile)
{
fileDialog.show();
}
return super.onOptionsItemSelected(item);
} }
MainActivity
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <EditText
android:id="@+id/edit_fileName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="输入文件名" /> <Button
android:id="@+id/btn_open"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="readData"
android:layout_toRightOf="@id/edit_fileName"
android:text="打开" /> <Button
android:id="@+id/btn_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/btn_open"
android:onClick="saveFile"
android:text="保存" />
<EditText
android:id="@+id/edit_fileContent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/btn_save"
android:background="@android:drawable/edit_text"
android:hint="文件内容" /> </RelativeLayout>
activity_main
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="#000"
/>
item——layout
内部存储 openFileInputStream openFileOutputStream的更多相关文章
- 彻底了解android中的内部存储与外部存储
我们先来考虑这样一个问题: 打开手机设置,选择应用管理,选择任意一个App,然后你会看到两个按钮,一个是清除缓存,另一个是清除数据,那么当我们点击清除缓存的时候清除的是哪里的数据?当我们点击清除数据的 ...
- Android用路径api在内部存储读写文件
复制并修改原有项目 复制之前创建的项目CC+CV操作 需要改动的地方: * 项目名字 * 应用包名 * R文件重新导包 接着修改件/AndroidManifest.xml中的包名:package=&q ...
- Android 在内部存储读写文件
文件读写操作* Ram内存:运行内存,相当于电脑的内存* Rom内存:内部存储空间,相当于电脑的硬盘* sd卡:外部存储空间,相当于电脑的移动硬盘在内部存储空间中读写文件>小案例:用户输入账号密 ...
- Android 内部存储和外部存储
应用程序的一些配置文件需要存储在手机上.一般分为内部存储和SD卡存储. 一. 内部存储 ,以 FileOutputStream File file = new File(getFilesDir(),& ...
- 大过年的,不下班的,上个Android文件操作类(内部存储和sd卡均可)
package com.kkdiangame.UI.res; import java.io.ByteArrayOutputStream; import java.io.File; import jav ...
- (转)Android如何编程设置APP安装位置(外部存储或内部存储)?
Beginning with API Level 8, you can allow your application to be installed on the external storage ( ...
- Android--数据持久化之内部存储、Sdcard存储
前言 之前一直在讲AndroidUI的内容,但是还没有完结,之后会慢慢补充.今天讲讲其他的,关于数据持久化的内容.对于一个应用程序而言,不可避免的要能够对数据进行存储,Android程序也不例外.而在 ...
- Android中将Bitmap对象以PNG格式保存在内部存储中
在Android中进行图像处理的任务时,有时我们希望将处理后的结果以图像文件的格式保存在内部存储空间中,本文以此为目的,介绍将Bitmap对象的数据以PNG格式保存下来的方法. 1.添加权限 由于是对 ...
- 彻底理解android中的内部存储与外部存储
我们先来考虑这样一个问题: 打开手机设置,选择应用管理,选择任意一个App,然后你会看到两个按钮,一个是清除缓存,另一个是清除数据,那么当我们点击清除缓存的时候清除的是哪里的数据?当我们点击清除数据的 ...
随机推荐
- 第10课 struct 和 union 分析
1. struct的小秘密 (1)C语言中的struct可以看作变量的集合 (2)struct的问题——空结构体占用多的内存? [实例分析]空结构体的大小 #include <stdio.h&g ...
- python基础补充内容
知识内容: 1.三元运算表达式 2.python代码编写规范 3.模块导入与使用 4.python文件名 5.python脚本的"__name__"属性 6.python之禅 一. ...
- 最近开始研究php的缓存技术,来个系统自带的OPcache
最近开始研究php的缓存技术,来个系统自带的OPcache php5.5以上版本 系统自带 PHP5.2-5.4 可通过扩展来安装 OPcache是 zend出品 比apc的优势在于 长期更新 ...
- OpenACC 简单的直方图
▶ 简单的直方图,强调原子操作的使用 ● 代码 #include <stdio.h> #include <stdlib.h> #include <openacc.h> ...
- php获取服务器信息类
<?php/**+------------------------------------------------------------------------------* 获取服务器信 ...
- PLSQL developer常用技巧
1.PL/SQL Developer记住登陆密码 在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码: 设置方法:tools- ...
- javascript 浮点数加减乘除计算会有问题, 整理了以下代码来规避这个问题
/* * js数学计算 add by yan */ /** ** 加法函数,用来得到精确的加法结果 ** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显.这个函数返回较 ...
- WMI 连接远程计算机并进行局域网进程扫描
On Error Resume Next Dim myArray(231) myArray(0)="smss.exe"myArray(1)="csrss.exe" ...
- dir 使用,统计文件数量
dir /b /a-d | find /v /c "$$$$" >1.log--※ 来源:·水木社区 newsmth.net·[FROM: 125.46.17.*] 今天去水 ...
- java.util包简介
java.util包含集合框架.遗留的 collection 类.事件模型.日期和时间设施.国际化和各种实用工具类(字符串标记生成器.随机数生成器和位数组.日期Date类.堆栈Stack类.向量Vec ...