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, 100, os);
//将Drawable 转成bitmap
BitmapDrawable tempDrawable = (BitmapDrawable) DrawableImage;
tempDrawable.getBitmap();
时间: 2024-10-29 09:18:00

android IO流操作文件(存储和读取)的相关文章

Android中的File文件存储及读取file中的Bitmap

今年看了下android的文件存储,大致和java实现差不多 android提供了如下两个方法来打开本应用程序的数据文件的IO流: FileInputStream  openFileInput(fileName);  //输入流 FileOutputStream outputStream = openFileOutput(fileName, MODE_PRIVATE);  //输出流 打开输出流的方法的第二个是表示打开文件的mode,大概有一下几种: MODE_PRIVATE : 该文件只能被当

关于java io流操作文件探讨

1.任务描述    2.读取一个字符 3.读取整个文件 4.复制文件 5.复制大文件 6.利用字符流解决乱码问题 一.任务描述 大家都知道程序是程序的运行是离不开内存的,但是很多东西并不在程序当中,而程序也需要操作它们.所以就需要一个东西与内存外的资源打交道,我们就把这个东西称为io流.io流分为输出流和输入流,输出流是将内存中的东西输出到内存之外,输入流是将内存之外的东西读取到内存中.一旦有了io流之后,与内存之外的资源打交道就十分方便了.为什么这么说,其实总体上就只需要三步操作,第一步,定位

Java:IO流与文件基础

Java:IO流与文件基础 说明: 本文所有内容包含图片均为MrSaber自己编写,转载请练习我哦. 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象称作 输入流,可以向其中写入一个字节序列的对象称作 输出流. ? 这些字节序列的来源可以是:文件.网络连接.内存块等. ? 抽象类InputStream和OutputStream是构成输入/输出(I/O)的基础. ? 因为面向字节的流

IO流的文件复制

1. IO流的分类 1.根据处理数据类型的不同分为: 字符流:1)Reader 读取字符流的抽象类 常用方法: read() 读取单个字符 read(char[] cbuf) 将字符读入数组. read(char[] cbuf, int off, int len) 将字符读入数组的某一部分. close() 关闭该流并释放与之关联的所有资源. 2)Writer 写入字符流的抽象类 常用方法:write(int c) 写入单个字符. write(String str) 写入字符串 write(St

IO流操作

一.IO流 1.  IO流是用来处理设备之间的数据传输,java是通过流的方式完成对数据的传输. 2.  操作的基本规律 1>明确源和目的. 2>操作的数据是否是纯文本. 3>当体系明确后,明确要使用哪个具体的对象. 二.IO流结构 IO流 |---字节流 |--输入流抽象基类:InputStream |--输出流抽象基类:Outputtream |---字符流 |--输入流抽象基类:Reader |--输出流抽象基类:Writer 注:由这四个类派生出来的子类名称都是以其父类名作为子类

使用IO流复制文件夹(包括子目录)

IO流用于处理设备上的数据(包括硬盘,内存,键盘录入). IO流可根据流向不同分为输入流和输出流,根据处理数据类型不同分为字节流和字符流. 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本质其实就是基于字节流读取时,去查了指定的码表. 字节流和字符流的区别: a.读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节. b.处理对象不同:字节流能处理所有类型的数据(如图片.avi等),而字符流只能处理字符类型的数据. 结论:

java io流 创建文件、写入数据、设置输出位置

java io流 创建文件 写入数据 改变system.out.print的输出位置 //创建文件 //写入数据 //改变system.out.print的输出位置 import java.io.*; public class Index{ public static void main(String[] args) throws Exception{ /** * 存储为二进制,给计算机看的 */ //创建文件 DataOutputStream sjl = new DataOutputStrea

Asp.Net中用流操作文件

byte[] bytes = File.ReadAllBytes(@"c:\BorlandDelphi7.zip"); File.WriteAllBytes(@"c:\a.zip", bytes); 有用过这种方式来读取文件的. 这种方式的弊端在于,先是把文件整个读取出来,放入内存,然后再写入硬盘.如果文件太大,而且内存不够大的话,有可能造成死机现象,而且速度相对来说比较慢. 流操作: 什么是流,通俗来说就是读一点写一点,而且这个一点,是可以控制的,我可以让他一次读

【Android】14.2 外部文件存储和读取

分类:C#.Android.VS2015: 创建日期:2016-02-27 一.简介 1.基本概念 内部存储的私有可用存储空间一般都不会很大,对于容量比较大的文件,例如视频等,应该将其存储在外部存储设备(SD卡)上. 注意,不要将手机内存和手机内插入的存储卡(手机卡.SD卡)混淆在一起,内存是不能持久存储的,一关机所有信息就全部丢失了,而内部存储(移动经销商卖的手机卡,容量小,但是没有它打不了电话).外部存储(SD卡,容量大,各种文件都能保存)都是可以持久存储的设备,因此才叫文件存储. 可以通过