初涉java(io编程)

来源:互联网 发布:mac上app store打不开 编辑:程序博客网 时间:2024/06/01 18:02

需引入包java.io.*;

java流的分类

①按流向分:

输入流: 程序可以从中读取数据的流。【数据从数据源(文件)到程序(内存)的路径】
输出流: 程序能向其中写入数据的流。【数据从程序(内存)到数据源(文件)的路径】

②按数据传输单位分:

字节流: 以字节为单位传输数据的流(可以用于读写二进制文件及任何类型的文件)

字符流: 以字符为单位传输数据的流(可以用于读写文本文件,不能操作二进制文件)
这里写图片描述

③按功能分:

节点流: 用于直接操作目标设备的流

过滤流: 是对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强大、灵活的读写功能。


基本用法

当所给出的路径已存在这个文件即可直接使用

        //创建一个文件对象        File f=new File("d:\\a.txt");        //得到文件的路径        f.getAbsolutePath();        //得到文件的大小(字节大小)        f.length();        //文件是否可读(若可读返回true)        f.canRead();

当给出的路径不存在这个文件,可自行创建

//创建文件        File ff=new File("d:\\aa.txt");        if(!ff.exists())        {            //不存在这个文件,可以创建            try {                ff.createNewFile();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }        else        {            //文件已存在,不能创建,执行其他操作        }

也可以创建文件夹

File fff=new File("d:\\aaa.txt");        if(!fff.isDirectory())        {            //不存在这个文件夹,可创建            fff.mkdir();        }        else        {            //已存在不能创建        }

通过利用数组列出文件夹下的所有文件

//列出一个文件夹下面的所有文件        File f=new File("d:\\ff");        if(f.isDirectory())        {            File lists[]=f.listFiles();            for(int i=0;i<lists.length;i++)            {                System.out.println("文件名:"+lists[i].getName());            }        }

FileInputStream类的使用

File f=new File("d:\\test.txt");        //因为File没有读写的能力,所以需要使用InputStream        FileInputStream fis=null;        try {            fis=new FileInputStream(f);            //定义一个字节数组(相当于缓存,不可能一下子把文件中的数据全读出来,而是相当于按照一定的规律分组读出来)            byte []bytes=new byte[1024];            int n=0;//得到实际读取到的字节数            while((n=fis.read(bytes))!=-1)            {                //把字节转化成String                String s=new String(bytes,0,n);                System.out.println(s);            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }finally{            //文件一旦打开了就要记得关闭,关闭文件流必须放这里            try {                fis.close();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }

FileOutputStream类的使用

File f=new File("d:\\ss.txt");        //字节输出流        FileOutputStream fos=null;        try {            fos=new FileOutputStream(f);            String s="abc,hello,world";//如果想在文件中换行,则可以在字符串后面添加“\r\n”            fos.write(s.getBytes());        } catch (FileNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }finally{            try {                fos.close();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }

0 0