• java基础学习--I/O流


    什么是IO流?

    file类

    file类常用的方法有下面几种:

    public String getAbsolutePath()   //获取绝对路径
    public String getPath() //获取路径
    public String getName()  //获取名称
    public String getParent() //获取上层文件目录路径 。若无 ,返回 null null
    public long length () //获取文件长度(即:字节数)。不能获取目录的长度 。
    public long lastModified() //获取 最后一次的修改时间 ,毫秒值
    public String[] list () //获取指定目录下的所有文件或者 文件 目录 的名称数组
    public File[] listFiles () //获取指定目录下的所有文件或者 文件 目录 的File数
    public boolean isDirectory() //判断是否是文件夹
    public boolean isFile() //判断是否是文件
    public boolean exists() //判断是否存在
    public boolean creatNewFile() //创建文件,若文件存在则不创建,返回false
    public boolean mkdir() //创建文件目录,如果 此文件目录存在 ,就不创建 了。 如果此文件目录的上层不存在 ,也不创建 。
    public boolean mkdirs() //创建文件 目录 。如果 上层 文件 目录 不存在 ,一并创建

     下面代码利用file类简单实现创建文件夹,并在文件夹里面创建空文件。

    public class FileTest {
        public boolean deleteHello(){
            File file4 = new File("I:\java_study\java_code\Test\Filestudy\hello\hello.txt");
            if (file4.exists()){
                file4.delete();
                return true;
            }else{
                return false;
            }
        }
        public static void main(String[] args) {
    
            File file = new File("I:\java_study\java_code\Test\Filestudy\hello");
            if (!file.exists()){
                file.mkdir();
            }
            File file1 = new File(file,"1.txt");
            if (!file1.exists()){
                try {
                    file1.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            File file2 = new File(file,"2.txt");
            if (!file2.exists()){
                try {
                    file2.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
            File file3 = new File(file,"3.txt");
            if (!file3.exists()){
                try {
                    file3.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
            FileTest t1 = new FileTest();
            System.out.println(t1.deleteHello());
        }
    }

     流的分类

    • 按操作数据单元不同分为:字节流(8bit),字符流(16bit)
    • 按数据流的流向不同分为:输入流、输出流
    • 按流的角色的不同分为:节点流、处理流
    • 节点流:直接从数据源或目的地读写数据
    • 处理流:不直接连接到数据源或者目的地,而是连接在已存在的流之上,通过对数据的处理为程序提供更强大的读写功能

    节点流

    节点流:直接与数据源相连,读入或读取,直接使用节点流读写不方便,为了更快地读写文件,需要使用处理流。

     处理流

    处理流和节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。如   BufferedReader 处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。

    转换流

    InputStreamReader、OutputStreamWriter要InputStream或OutputStream作为参数,实现从字节流到字符流的转换。

    构造函数

    InputStreamReader(InputStream);        //通过构造函数初始化,使用的是本系统默认的编码表GBK。
    InputStreamReader(InputStream,String charSet);   //通过该构造函数初始化,可以指定编码表。
    OutputStreamWriter(OutputStream);      //通过该构造函数初始化,使用的是本系统默认的编码表GBK。
    OutputStreamwriter(OutputStream,String charSet);   //通过该构造函数初始化,可以指定编码表。

     Java共涉及到的IO流一共有40多个类,都是从这4个抽象基类派生出来的,由这4个类派生出来的子类名称都是以其父类名作为子类名后缀。

     参考

    Java IO流学习总结一:输入输出流

      

  • 相关阅读:
    团队展示
    原型设计(结对第一次)
    第二次作业——个人项目实战
    第一次作业--准备篇
    课程作业四
    课程作业三
    课程作业二
    课程作业一
    图像处理------ 一阶微分应用 (转载)
    dennis gabor 从傅里叶(Fourier)变换到伽柏(Gabor)变换再到小波(Wavelet)变换(转载)
  • 原文地址:https://www.cnblogs.com/s1awwhy/p/13360400.html
Copyright © 2020-2023  润新知