• java IO 学习(三)


    java IO 学习(一)给了java io 进行分类,这一章学习这些类的常用方法

    一、File

      1、创建一个新的File的实例:

    1             /**
    2              * 创建一个新的File实例
    3              */
    4             File f = new File("D:/file/3.jpg");// unix系统
    5             File f2 = new File("D:\file\3.jpg");// windows系统
    6             File f3 = new File("D:\file", "3.jpg");
    7             File f4 = new File(f3.toURI());
    8             File f5 = new File("a.jpg");

      2、该File实例的常用方法

     1             if (f2.canExecute()) {
     2                 System.out.println("该文件可以被执行");
     3             }
     4             if (f2.canRead()) {
     5                 System.out.println("该文件可以被读取");
     6             }
     7             if (f2.canWrite()) {
     8                 System.out.println("该文件可以被写入(修改)");
     9             }
    10             System.out.println("比较两个File实例(f2,f3)的字典:" + f2.compareTo(f3));
    11             if (f.createNewFile()) {
    12                 System.out.println("当且仅当具由该实例表示的文件尚不存在时,创建一个新的空文件,并返回true");
    13             }
    14             if (!f.exists()) {
    15                 System.out.println("该实例表示的文件不存在");
    16             }
    17             if (!f.isFile()) {
    18                 System.out.println("该实例不是标准文件");
    19             }
    20             if (!f.isDirectory()) {
    21                 System.out.println("该实例不是目录");// 目录就是文件夹
    22             }
    23             if (!f.isHidden()) {
    24                 System.out.println("该实例不是隐藏文件");
    25             }
    26             // 获取文件名或目录名
    27              String name = f.getName();
    28             // 获取文件绝对路径
    29              String absolutePath = f.getAbsolutePath();
    30             // 获取文件父目录
    31              String parent = f.getParent();
    32             // 获取文件路径
    33              String path = f.getPath();
    34              long lastUpdate = f.lastModified();
    35              long length = f.length();
    36             // 创建此抽象路径名指定的目录
    37              f.mkdir();
    38             // 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录
    39              f.mkdirs();
    40             // 重新命名此抽象路径名表示的文件,就是对该文件的路径进行重命名
    41             // 如果父路径相同,就是对该文件的重命名,如果父路径不一样,就是移动该文件的位置,目标文件已存在时移动失败
    42              f.renameTo(new File("D:/file/2/1.jpg"));
    43             // 删除该文件
    44              f.delete();

    二、InputStream

      1、一般创建一个InputStream实例由它的子类 FileInputStream 来完成。

    1             /**
    2              * 读取文件的原始字节流
    3              */
    4             FileInputStream fip = new FileInputStream("D:\file\3.jpg");// 通过路径
    5             FileInputStream fip2 = new FileInputStream(f2);// 通过File实例

       2、它拥有的常用方法以及它子类的常用方法

     1             /**
     2              * 读取文件的原始字节流
     3              */
     4             FileInputStream fip = new FileInputStream("D:\file\3.jpg");// 通过路径
     5             FileInputStream fip2 = new FileInputStream(f2);// 通过File实例
     6             // 获取该流可以读取(或跳过)的字节数的估计值(int)
     7             System.out.println(fip.available());
     8             // 获取从输入流读取数据的下一个字节
     9             System.out.println(fip.read());
    10             // 从输入流读取一些(new byte[100].length=100)字节数,并将它们存储到缓冲区 new
    11             // byte[100],返回读取的字节数
    12             System.out.println(fip.read(new byte[100]));
    13             // 从输入流的0位置开始读取最多 100字节的数据到一个new byte[100],返回读取的字节数
    14             System.out.println(fip.read(new byte[100], 0, 100));
    15             // 跳过并丢弃100个字节数,返回实际跳过的字节数
    16             fip.skip(100);
    17             if (fip.markSupported()) {
    18                 System.out.println("这个输入流支持 mark和 reset方法");
    19                 // 标记此输入流中的当前位置
    20                 fip.mark(12);
    21                 // 将此流重新定位到上次在此输入流上调用 mark方法时的位置
    22                 fip.reset();
    23             }
    24             // 关闭流
    25             fip.close();
    26             /**
    27              *  子类DataInputStream多了.readLong();等一些方法,别的子类与父类基本相同,多出来的方法我们新人一般用不到
    28              */    

    三、OutputStream

     1             // 声明和InputStream基本一样,多了一个:true 表示字节将被写入到文件的末尾,而不是开头(append)
     2             FileOutputStream os = new FileOutputStream("D:\file\3.jpg", true);
     3             // 将指定的字节写入此输出流
     4             os.write(0);
     5             // 将 new byte[100].length字节从new byte[100]写入此输出流
     6             os.write(new byte[100]);
     7             // 从new byte[100]写入 50个字节,从偏移 0开始输出到此输出流
     8             os.write(new byte[100], 0, 50);
     9             // 刷新此输出流并强制任何缓冲的输出字节被写出
    10             os.flush();
    11             // 关闭流
    12             os.close();
    13             // 创建一个新的字节数组输出流,具有100大小的缓冲区容量,不填不指定大小
    14             ByteArrayOutputStream baos = new ByteArrayOutputStream(100);
    15             // 创建一个新分配的字节数组
    16             byte[] b = baos.toByteArray();
    17             // 将此字节数组输出流的 count字段重置为零,以便丢弃输出流中当前累积的所有输出
    18             baos.reset();
    19             // 使用utf-8字符集将缓冲区内容转换为字符串解码字节, 不填则用平台默认
    20             baos.toString("utf-8");
    21             /**
    22              * 子类DataOutputStream多了.writeLong();.size()等一些方法,别的子类与父类基本相同,多出来的方法我们新人一般用不到
    23              */
  • 相关阅读:
    Redis的数据结构
    Centos6.5安装Redis3.0备忘记录
    Centos6.5安装MySQL5.6备忘记录
    QueryRunner使用之可变条件的处理
    List集合遍历整理
    js获取select标签选中的值
    linuxC/C++面试问题总结整理
    live555学习(一)通读Makefile编译live555
    入园博客开篇
    springboot 整合 MongoDB 实现登录注册,html 页面获取后台参数的方法
  • 原文地址:https://www.cnblogs.com/qq765065332/p/8745098.html
Copyright © 2020-2023  润新知