Java IO流

 

IO流的概念

  先了解IO是啥,IO是两个Input和Output单词的缩写,表示输入输出的意思。而流(Stream)的概念起源于UNIX中管道(pipe)的概念,在UNIX中管道(pipe)是一条不间断的字节流,它是一个数据传输的管道,用来实现程序或进程间的通信,或读写外围设备、外部文件等。Java IO流就是java程序进行数据传输的管道。

 

流的分类

  java中的流可以从不同的角度进行分类

  1. 按数据流的方向不同:输入流,输出流。

  2. 按处理数据单位不同:字节流,字符流。
    1)字节流(InputStream,OutputStream):数据流中最小的数据单元是字节。
      2)字符流(Reader,Writer):数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节。

  3. 按功能不同:节点流,处理流。
     1)程序用于直接操作目标设备所对应的类叫节点流。
     2)程序通过一个间接流类去调用节点流类,以达到更加灵活方便地读写各种类型的数据,这个间接流类就是处理流。

 

  java流类图结构

   

 

 

 

File类的使用

  Java IO流也是java中文件进行读写基础知识。 java中将所有的东西都看成一个对象,那么文件也是一个对象,java中File类就是表示文件(目录)的。

  java.io.File类可以对文件(目录)进行操作的类,只能对文件本身进行操作,不能对文件内容进行操作。
  File类只用于表示文件(目录)的信息(名称,大小等),但不不能用于文件内容的访问。File类定义了一些与平台无关的操作方法,如:删除文件、创建文件、重命名等。

  File类Api操作

package xiana;

import java.io.File;
import java.io.IOException;

public class FileClass {
    public static void main(String[] args) throws IOException {
        //创建一个File实例 构造方法中传递文件目录路径 
        File file = new File("/tmp/file.txt");
        File file1 = new File("/tmp"+File.separator+"file1.txt"); //File.separator可以根据当前系统设置分隔符
        //exists判断文件是否存在
        System.out.println(file.exists());
        
        if (!file.exists()) {
            file.mkdir();//mkdir()创建指定目录
        }else {
            //delete删除路径目录
            file.delete();
        }
        //判断文件是否存在
        if (!file1.exists()){
            //创建一个文件
            file1.createNewFile();
        }else {
            //也可删除文件
            file1.delete();
        }
        //判断是否是一个目录 
        System.out.println(file.isDirectory());
        //判断是否是一个文件
        System.out.println(file.isFile());
        
        //常用的File对象的API
        System.out.println(file);//file.toString()的内容,这里显示的是目录名
        //显示抽象文件路径名
        System.out.println(file.getAbsolutePath());
        //获取文件名字
        System.out.println(file.getName());
        //返回父目录路径
        System.out.println(file.getParent());
    }
}

 运行结果

 

File类遍历目录

 

posted @ 2019-08-01 09:54  songguojun  阅读(114)  评论(0编辑  收藏  举报