android IO流操作文件(存储和读取)
存储文件:
public class FileOperate extends Activity {
private static final String FILENAME = "mydata.txt" ;// 设置文件名称
private static final String DIR = "ljpdata" ; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); // 调用布局文件
if(Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)){ // 如果sdcard存在
File file = new File(Environment
.getExternalStorageDirectory().toString()
+ File.separator
+ DIR + File.separator + FILENAME) ; // 定义File类对象
if (! file.getParentFile().exists()) { // 父文件夹不存在
file.getParentFile().mkdirs() ; // 创建文件夹
}
PrintStream out = null ; // 打印流对象用于输出
try {
out = new PrintStream(new FileOutputStream(file, true)); // 追加文件
out.println("山东大学软件学院(SDU,www.sdu.edu.cn),讲师:学生");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (out != null) {
out.close() ; // 关闭打印流
}
}
} else { // SDCard不存在,使用Toast提示用户
Toast.makeText(this, "保存失败,SD卡不存在!",Toast.LENGTH_LONG).show();
}
}
}
读取文件:
public class FileOperate extends Activity {
private static final String FILENAME = "mydata.txt" ; // 设置文件名称
private static final String DIR = "ljpdata" ; // 设置保存文件夹
private TextView msg = null ; // 文本显示
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); // 调用布局文件
this.msg = (TextView) super.findViewById(R.id.msg) ;
if(Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)){ // 如果sdcard存在
File file = new File(Environment
.getExternalStorageDirectory().toString()
+ File.separator
+ DIR + File.separator + FILENAME) ; // 定义File类对象
if (! file.getParentFile().exists()) { // 父文件夹不存在
file.getParentFile().mkdirs() ; // 创建文件夹
}
Scanner scan = null ; // 扫描输入
try {
scan = new Scanner(new FileInputStream(file)) ; // 实例化Scanner
while(scan.hasNext()){ // 循环读取
this.msg.append(scan.next() + "
") ; // 设置文本
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (scan != null) {
scan.close() ; // 关闭打印流
}
}
} else { // SDCard不存在,使用Toast提示用户
Toast.makeText(this, "读取失败,SD卡不存在!",Toast.LENGTH_LONG).show();
}
}
}
Android将图像转换成流存储与将流转换成图像
//take the image to byte[]
byte[] byteIcon = userIcon; //将字节数组即头像从二进制流转换成drawable
if(byteIcon != null){
ByteArrayInputStream bais = new ByteArrayInputStream(byteIcon);
userIconDrawable = Drawable.createFromStream(bais, "image");
}
BitMap userIcon; //将bitmap转换成drawable
ByteArrayOutputStream os = new ByteArrayOutputStream();
//参数1转换类型,参数2压缩质量,参数3字节流资源
userIcon.compress(CompressFormat.PNG, , os);
//将Drawable 转成bitmap
BitmapDrawable tempDrawable = (BitmapDrawable) DrawableImage;
tempDrawable.getBitmap();
android IO流操作文件(存储和读取)的更多相关文章
- IO流----操作文件的9种方法代码实现
IO流----操作文件的9种方法代码实现: 1:使用字节流读写数据: 四种方式: method1: 每次读写一个字节,边读边写: /* * 复制文本文件. * * 数据源:从哪里来 ...
- 安卓 io流 写入文件,再读取的基本使用
1.布局 布局里面只有一个EditView,通过输入内容之后,当触发 onDestroy 方法时,将输入的数据存储在当前应用的data/data/files文件夹下. <?xml version ...
- java io流 对文件夹的操作
java io流 对文件夹的操作 检查文件夹是否存在 显示文件夹下面的文件 ....更多方法参考 http://www.cnblogs.com/phpyangbo/p/5965781.html ,与文 ...
- Java基础 IO流的文件和目录的五类主要操作
笔记: /** IO流的 文件和目录的操作 * 1.路径需要 需要两个反斜杠 或者一个单斜杠! * 绝对路径:包括盘符在内的完整的路径名! * 相对路径:在当前目录文件下的路径! * 2.File 是 ...
- Java:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- Java IO流操作汇总: inputStream 和 outputStream【转】
我们在进行Android java 开发的时候,经常会遇到各种IO流操作.IO流操作一般分为两类:字符流和字节流.以“Reader”结尾都是字符流,操作的都是字符型的数据:以“Stream”结尾的都是 ...
- Java基础教程:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- IO流的文件复制
1.IO流的分类 1.根据处理数据类型的不同分为: 字符流:1)Reader 读取字符流的抽象类 常用方法: read() 读取单个字符 read(char[] cbuf) 将字符读入数组. read ...
- Hadoop基础-通过IO流操作HDFS
Hadoop基础-通过IO流操作HDFS 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.上传文件 /* @author :yinzhengjie Blog:http://www ...
随机推荐
- numpy的ravel()和flatten()函数比较
功能 两个函数的功能都是将多维数组降为一维. 用法 import numpy as np arr = np.array([[1, 2],[3, 4]]) arr.flatten() arr.ravel ...
- easyui combobox下拉框复制后再禁用,点击不会出现下拉框
easyui combobox下拉框禁用,点击不会出现下拉框 需要做到,在给easyui combobox赋值后,再禁用easyui combobox 解决办法: $("#time-sele ...
- scala combineByKey用法说明
语法是: combineByKey[C]( createCombiner: V => C, mergeValue: (C, V) => C, mergeCombiners: ( ...
- 【链表】Linked List Cycle II
题目: Given a linked list, return the node where the cycle begins. If there is no cycle, return null. ...
- 用as3.0制作一个滚动条组件
本实例演示了实现一个滚动条基本功能的制作方法,没有添加改变皮肤,修改滚动条视框大小等功能,有兴趣的朋友可根据自己要求自行添加.使用时只需要通过以下一行代码创建滚动条组件: var myScrollba ...
- springboot-15-启动时加载数据的方法CommandLineRunner
有时需要爱项目启动时, 去加载一些配置文件什么的, 可以使用监听器的方式加载, 这是可以通过实现接口 CommandLineRunner来实现需求: Spring Boot应用程序在启动后,会遍历Co ...
- [Hive]HiveSQL解析原理
Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用.美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析.Hive的稳定性和 ...
- MyEclipse2014破解方法
之前一直使用的MyEclipse2014过期了,无奈之下只能在网上搜怎么破解,结果很管用,在这里记录并和大家分享 https://jingyan.baidu.com/article/fdbd42771 ...
- java开发一个应用的总结
需要注意的地方: (1)业务点要提前列出来,这样可防止遗漏: (2)关键业务点一定要反复确定,最好能做个测试demo出来,在没有完成之前,Everything is possible: (3)有陌生的 ...
- docker 简单安装java web项目
前言: Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行 ...