• 流的文件操作


    一、流的分类:

      1、流按照方向分类:分为输入流和输出流,流的操作是相对于内存而言。

        输入流的定义:当我们从数据源中将数据读取到内存中就称为输入流,也叫读取流。

        输出流的定义:当我们将内存中处理好的数据写入数据源,就称为输出流,写入流。

      2、流按照内容分类:可以分为字节流、字符流、对象流。

    数据的传输在底层都是以二进制的方式传输,所以无论是哪种流,其实都是字节流。而字符流和对象流只是在字节的基础上做了一层封装,以便于对字符数据和对象数据进行操作。

    二、流的父类

      1、所有字节流的父类都是:InputStream和OutputStream;

      2、所有字符流的父类都是:Reader和Writer。

    三、流的操作步骤

      1、建立流。所谓建立流就是建立内存和数据源之间传输数据的通道。

      2、操作流。操作传输的数据。

      3、关闭流。关闭内存和数据源之间的通道,释放资源。

        例:

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

        public class StreamTest{
        public StreamTest(){
          InputStream in = null;
            try {
             //建立流
          in = new FileInputStream("info.txt"); 
          int data = 0;
             //操作流,一次读取一个字节。如果为-1,那么表示读取完毕
          while((data = in.read()) != -1){
          System.out.println(data);
        }
          } catch (Exception e) {
          e.printStackTrace();
          }finally{
          try {
             //关闭流
           in.close();
          } catch (Exception e) {
          e.printStackTrace();
            }
          }
        }
      }

      备注:流使用完毕后,必须关闭,如果不关闭会浪费内存资源,另外,写入流有可能写不进数据。关闭的顺序必须是先建立的流后关闭,后建立的流先关闭。

    四、建流的目的是:完成内存数据和磁盘数据的转换。

    五、以下是部分流的文件操作

      //第二个参数为true,表示已追加的方式向资源文件中写入数据,运行代码几次,资源文件就会追加几次数据,并且不会覆盖资源文件原来的数据。

      OutputStream out = null;

      out = new FileOutputStream("info.txt",true);

      out.write("Java技术".getBytes());

      注:、当使用OoutputStream写入流时,如果文件不存在,读取流会抛出FileNotFoundException异常。写入流会自动创建新文件。但是前提是该文件所在的目录必须存在。

      //创建文件对象

      File f = new File("c:/abc/a.txt");

      //或得文件名

      String name = f.getName();

      System.out.println(name);

      //得到文件所在目录

      String dir = f.getParent();

      system.out.println(dir);

      //得到文件的绝对路径

      String path = f.getAbsolutePath();

      System.out.println(path);

      //判断文件对象所代表的文件或目录是否存在,如果存在,结果就为true

      boolean isEx = f.exists();

      System.out.println(isEx);

      //判断文件对象代表的是否是存在 的文件

      System.out,pritln(f.isFile());

      //判断文件对象代表的是否是目录

      System.out.println(f.isDirectory());

      //得到一个目录中偶有文件列表,包含文件和目录,但是不包含子目录中的内容

      File f = new File("D:/KwDownload");

      File[] fs = f.listFiles();

        for(File ft : fs){

          System.out.println(ft.getName());

          }

      //删除指定目录下的文件

      File f = new File("D:/KwDownload/a.docx");

      f.delete();

      //删除文件对象所代表的文件或目录,前提必须是空文件才删得掉

      File f = new File("D:/KwDownload/aaa");

      f.delete();

      //得到指定目录下所有文件及子文件夹中的文件

      public static void (String[] args){

        list(new File("D:/KwDownload"));

        }

      public static void list(File dirFile){

        File[] fs = dirFile.listFiles();

          for(File f : fs){

            if(f.isFile()){

              System.out.println(f.getAbsolutePath());

            }else{

              list(f)

              }

           }

        }

      //创建制定路径的目录

      File f = new File("D:/aaa");

      f.mkdir();

      //创建文件选择对象

      JFileChooser jfc = new JFileChooser;

  • 相关阅读:
    ES5 创建构造函数的私有属性
    js 触发打印操作
    创建 React 项目
    处理因使用 BigInt 等最新语法时 ts 编译报错
    TS 查找第三方声明文件
    Git 撤销工作区中的变动
    Git 查看文件修改状态
    Git 查看用户名和 Email
    查看某个 npm 包的所有发行版版本号,比如 vue
    Git 查看文件修改详情
  • 原文地址:https://www.cnblogs.com/zhaoyihaohaoxuexi/p/6887772.html
Copyright © 2020-2023  润新知