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流学习总结一:输入输出流

 

  

 

posted @ 2021-04-22 10:16  s1awwhy  阅读(34)  评论(0编辑  收藏  举报