java I/O流初步认识使用

早先,在学习java中的io流时,因为没重视,换乱的看了视频就过了,导致现在做项目时看到文件等操作就头晕,现在有时间了,就重新的学了一遍java的IO流,加深印象吧。
首先说说IO流的概念:
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。

IO流的分类:
根据数据的流向可分为:输入流,输出流
根据处理的数据它的类型可分为:字符流与字节流
字符流与字节流中,优先选用字节流。首先因为硬盘上的所有文件都是以字节的形式进行传输或者保存的,包括图片等内容。但是字符只是在内存中才会形成的,所以在开发中,字节流使用广泛。
我经常搞混乱,不知道什么时候使用inputstream,什么时候使用outputstream。
接下来的一句话,记住的话就不用迷茫了:对输入流只能进行读操作,对输出流只能进行写操作,程序中需要根据待传输数据的不同特性而使用不同的流。

现在就简单的使用一下IO流来加深印象吧

//使用字节流向D盘的hello.txt文件写数据:

public static void main(String[] args) {
//File.separator用来跨平台的书写路径
        String fileName="D:"+File.separator+"hello.txt";
        File file=new File(fileName);
        try {
        //true则追加内容,false为覆盖内容
            OutputStream out=new FileOutputStream(file, true);
            String content="woyaojiayou";
            byte[]bb=content.getBytes();
            for(int i=0;i<bb.length;i++){
                out.write(bb[i]);
            }
            out.close();

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

//使用字节流读取文件内容(没做判断,因此D盘中先要有hello.txt文件)

public static void main(String[] args) {
        String fileName="D:"+File.separator+"hello.txt";
        File file=new File(fileName);
        try {
            InputStream is=new FileInputStream(file);
            byte[]bb=new byte[(int) file.length()];
            for(int i=0;i<bb.length;i++){
                bb[i]=(byte) is.read();
            }
            is.close();
            System.out.println(new String(bb));
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }

在创建文件时,我们经常会见到File的mkdir()和mkdirs()方法,那么这两个方法又有什么不同的呢?
写个示例,来更好的了解和记录这两个方法的区别吧

//String path="D:"+File.separator+"main.txt";
File file=new File("D:\\demo\\main");
//两个方法都返回boolean值,当创建成功则返回true,创建失败则返回false
/*mkdir()表示创建最内级的目录,就像上面的文件路径D:\\demo\\main, 它只创建最里面的那个main文件目录,如果demo本身不存在,那么它将创建失败,如果demo存在,它则创建成功
*/
boolean isCreate = file.mkdir(); //如果demo不存在则返回false

 boolean bFile1 = file.mkdir();  
        System.out.println("bFile1:"+bFile1);

        /*
         * mkdirs() 此方法创建所有目录结构,如目录D:\\demo\\main,它既创建了demo也创建main
         * */
        boolean bFile2 = file.mkdirs();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值