[转]IO流详解

转载 2015年11月20日 21:43:36
**感謝作者http://blog.csdn.net/gaohongijj/article/details/8062872**
package com.ghg.IO;             
import java.io.ByteArrayOutputStream;  
import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileNotFoundException;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  


import android.app.Activity;  
import android.content.res.AssetManager;  
import android.os.Bundle;  
import android.os.Environment;  
import android.os.FileObserver;  


public class Day1404_IOActivity extends Activity {  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        /*  
         * 1.创建并返回一个目录,在这个目录下存储应用程序的数据文件  
         * 输出结果为: getFilesDir():/data/data/com.ghg.IO/files  
         */  
           File dir= getFilesDir();  
           System.out.println("getFilesDir():"+dir.toString());  
        /*  
         * 2.创建并返回一个目录,在这个目录下存储应用程序的缓冲文件,当系统资源不足时,系统清除这下面的文件  
         * 输出结果为:dir2=/data/data/com.ghg.IO/cache  
         */  
           File dir2=getCacheDir();  
           System.out.println("dir2="+dir2.toString());  
       /*  
        * 3.创建并返回一个指定名称的目录,在这个目录下来存些东西  
        * 输出结果为:dir3=/data/data/com.ghg.IO/app_abc  
        */  
           File dir3=getDir("abc", MODE_PRIVATE);  
           System.out.println("dir3="+dir3.toString());  
        /*  
         * 4.用于返回数据库中指定名字的文件路径,在内部存储中应该保存的路径;  
         * 输出结果为:dir4=/data/data/com.ghg.IO/databases/stu.db  
         */  
           File dir4=getDatabasePath("stu.db");  
           System.out.println("dir4="+dir4.toString());  
       /*  
        * 5.打开一个输出流对象,通过这个输出流对象可以向abc.txt文件中写入一些数据,  
        * abc.txt文件位于/data/data/com.ghg.IO/files下;  
        */  
           try {  
            FileOutputStream  out=openFileOutput("abc.txt", MODE_PRIVATE);  
            out.write("gao hong guo jiajia".getBytes());  
            out.flush();  
            out.close();  
        } catch (FileNotFoundException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        } catch (IOException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  

        /*  
         * 6.获取一个输入流对象,通过这个输入流对对象读取指定文件,这个文件在/data/data/com.ghg.IO/files下;  
         */  

          try {  
            FileInputStream is=openFileInput("abc.txt");  
            ByteArrayOutputStream out=new ByteArrayOutputStream();  
            int len=0;  
            byte[] buf=new byte[4];  
            while((len=is.read(buf))>0){  
                out.write(buf, 0, len);  
                out.flush();  
            }  
            out.close();  
            is.close();  
            System.out.println(out.toString());  
        } catch (FileNotFoundException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        } catch (IOException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  

        /*  
         *7. 获取内部存储的数据目录  
         * 输出结果是:dir7=/data  
         */  
       File dir7=Environment.getDataDirectory();  
       System.out.println("dir7="+dir7.toString());  
        /*  
         * 8.获取内部存储下载缓冲目录,隐藏的目录;  
         * 输出结果为:dir8=/cache  
         */  
           File dir8=Environment.getDownloadCacheDirectory();  
           System.out.println("dir8="+dir8.toString());  
        /*  
         * 9.获取内部下载系统的根目录  
         * 输出结果为:dir9=/system  
         */  
           File dir9= Environment.getRootDirectory();  
           System.out.println("dir9="+dir9.toString());  
       /*  
        * 10.创建并返回外部存储文件目录,需要sd卡的的写入数据权限;  
        * 输出结果是:dir10=/mnt/sdcard/Android/data/com.ghg.IO/files/Music  


        */  
           File dir10=getExternalFilesDir(Environment.DIRECTORY_MUSIC);  
           System.out.println("dir10="+dir10.toString());  
       /*  
        * 11.创建并返回外部存储缓冲目录,需要sd卡的写入数据权限;  
        * 输出结果是:dir11=/mnt/sdcard/Android/data/com.ghg.IO/cache  
        */  
          File dir11= getExternalCacheDir();  
          System.out.println("dir11="+dir11.toString());  
          /*  
           * 12.返回sdcard的根目录;  
           * 结果: dir12=/mnt/sdcard  
           */  
          File dir12=Environment.getExternalStorageDirectory();  
          System.out.println("dir12="+dir12.toString());  
          /*  
           * 13.返回sdcard公共存储目录;  
           * 结果:dir13=/mnt/sdcard/Music  
           */  
              File dir13=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);  
              System.out.println("dir13="+dir13.toString());  
          /*  
           * 14.返回sdcard的状态,每次使用sdcard时,都会检查其状态;  
           * 结果:status=mounted  
           */  
              String status=Environment.getExternalStorageState();  
              System.out.println("status="+status);  

         /*  
          * 15.对源生资源的访问,在assets下放一个stu.db,读取并写入内部存储数据文件目录下;  
          */  
          File dir1=getDatabasePath("stu.db");  
          if (!dir1.exists()) {  
            if (!dir1.getParentFile().exists()) {  
                dir1.getParentFile().mkdir();  
            }  

            AssetManager manager=getAssets();  
            try {  
                InputStream in=manager.open("stu.db");  
                FileOutputStream out=new FileOutputStream(dir1);  
                int len=0;  
                byte[] buf=new byte[512];  
                while ((len=in.read(buf))>0){  
                    out.write(buf, 0, len);  
                    out.flush();  
                }  
                in.close();  
                out.close();  
            } catch (IOException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  

        }  

    }  
}  

Java中的IO流系统详解

摘要: Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。 Jav...
  • jiangwei0910410003
  • jiangwei0910410003
  • 2014年03月28日 15:05
  • 36714

Java 常用IO流操作详解

IO流大家肯定不陌生,简单整理了一下常用IO流基本用法,其他的IO流以后有时间在整理。 1.基本概念IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,...
  • MAGIC_JSS
  • MAGIC_JSS
  • 2016年05月22日 17:19
  • 10000

深入理解Java中的IO

深入理解Java中的IO,个人学习总结。
  • qq_25184739
  • qq_25184739
  • 2016年04月21日 01:15
  • 7196

IO流系统详解(转)

首先声明,这是我转载一位大牛的IO流详解,写的是十分的请楚有条理,必须转载学习一波。原文链接:http://blog.csdn.net/jiangwei0910410003/article/detai...
  • qq_16293247
  • qq_16293247
  • 2016年05月24日 22:13
  • 1143

Java_IO流详解

  • 2011年08月10日 14:19
  • 240KB
  • 下载

java高级编程--异常处理,多线程,IO流详解

  • 2011年09月07日 12:31
  • 434KB
  • 下载

IO流文档详解

  • 2012年04月10日 21:04
  • 6KB
  • 下载

java IO流操作详解源代码下载

  • 2015年03月15日 17:06
  • 48KB
  • 下载

Java中的IO流类详解

  • 2014年11月15日 08:02
  • 640KB
  • 下载

java IO流详解

  • 2012年09月01日 12:22
  • 255KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[转]IO流详解
举报原因:
原因补充:

(最多只允许输入30个字)