Java的IO流的操作和一些理解

关于IO流的处理,在一个程序中通常需要IO处理,因为它是非常重要的一个部分,但是在java中io流的使用也是个重点和难点,因为io操作涉及到一些关于文件的操作,从创建到生成,但是一个重点。在io操作中它的异常处理就显得很重要了,当你在进行异常处理的时候一般都是用的是throws的异常处理,异常类型是IOException进行处理,今天刚刚接触IO的处理方法,可能不是太明白,在后期的学习中,在不断的总结和不断地完善。
在进行Io处理的时候,需要用到一些方法,比如FileInputStream或者FIleOutputStream的流处理。FileInputStream的获取的返回值一般都使用InputStream接受。FileOutputStream一般使用OutputStream进行接收。
下图是关于IO流 的结构图:
输入流域输出流的层次关系
我们可以从图片中看到为什么FileInputStream和FileOutputStream的返回值要用InputStream和OutputStream来获取。

关于Io的相关的资料可以去Java的在线文档进行查看,地址是[Java 1.8官方文档]http://docs.oracle.com/javase/8/docs/api/)里面有个Java.io的包。所有的函数都已经在里面了。我很想阅读以下它的官方文档,但是自己的英语水平有限,可能还不能读懂他的官方文档,但是我们借用翻译器慢慢来阅读。也会提升一下自己的英语水平嘛!!

不说这个,还是想贴上代码,在进行说明
这是一个关于创建一个文件并且让它显示在控制台里面的例子:
IOTest.java

package com.file.ioTest;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class IOTest {

    public static void main(String[] args) {

        try {
            byte bWrite[] = {12, 21, 3, 4, 55 };
            OutputStream os = new FileOutputStream("Test.txt");//创建一个文件,没有的话创建,有了的话就不变。
            for (int x = 0; x < bWrite.length; x++) {
                os.write(bWrite[x]);//将BWrite里面的二进制写入都Test.txt文件里面去
            }
            os.close();//最后在关闭输出流,这个很关键,没有关闭的话可能会导致资源的大量的浪费,和被占用
            InputStream Is = new FileInputStream("Test.txt");//创建一个输入流用来获取到这个文件
            int size = Is.available();//使用输入流的available进行读取文件的大小
            for (int i = 0; i < size; i++) {
                System.out.println( Is.read());//使用循环进行显示,将Read()的返回值类型进行强制转化的话会有个问题,输入到控制台的数据都是乱码的,文件中的数据也是乱码的。
            }
            Is.close();//最后关闭输入流。
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        } catch (IOException e) {

            e.printStackTrace();
        }

    }

}

第二是怎么创建一个路径:
CreateDir.java

package com.file.ioTest;

import java.io.File;

public class CreateDir {

    public static void main(String[] args) {
        String dirName="temp/java/bin";//这是一个路径的字符串
        File f=new File(dirName);// 这个开始创建一个文件
        //创建路径
        if(f.mkdirs()){//使用mkdir的方法创建一个路径,返回值是Boolean型的
            System.out.println("创建成功");
        }else{
            System.out.println("创建失败!");
        }
    }

}

第三个是如何读取一个路径和下面有哪些文件

ReadDir.java

package com.file.ioTest;

import java.io.*;


public class ReadDir {

    public static void main(String[] args) {
        File file=null;
        String[] paths;
        try {
            file=new File("temp");//先将地址定位到temp下
            paths=file.list();//使用list获取temp下面的文件和文件夹的个数
            for(String path:paths){
                System.out.println(path);通过for循环打印一下文件的名称
            }
        } catch (Exception e) {

            e.printStackTrace();
        }

    }

}

IO流处理是个大的难点,不是一下就可以理解,所以,还要在后面的学习理解中在进行完善。这篇文章先写到这里,以后有新的理解的时候在做优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值