java_io

作者: 老北瓜 | 来源:发表于2020-04-17 16:50 被阅读0次

java.io.File类的使用
IO原理及流的分类
  |---文件流   操作对象是文件
     FileInputStream / FileOutputStream / FileReader / FileWriter
  |---缓冲流  操作对象是内存
     BufferedInputStream / BufferedOutputStream / BufferedReader / BufferedWriter
  |--转换流
     InputStramReader / OutputStreamWriter

File类

File 是一个文件或者一个目录
File能新建、删除、重命名文件和目录,但File不能访问文件内容本身,如果访问内容,需要io流。
File.separator   文件分隔符 \

/**
  *  两种构造方法 区别不大
  */
File file = new File("E:\\abc\\tt.txt");
// 不常使用
File file1 = new File("E:\\abc", "tt\\txt");

File f3 = new File("E:\\e\\test\\ok");
f3.mkdirs();

try {
     File f4 = new File(f3, "x.txt");
      //  创建一个新文件 ;
     f4.createNewFile();
     if (f4.isFile()) {
           System.out.println("F4是文件");
      } else {
           System.out.println("F4是文件夹");
      }
} catch (IOException e) {
      e.printStackTrace();
}
// 删除一个文件;
f3.delete();

递归

private static void digui(File file) {
        if (file.isFile()) {
            System.out.println(file.getAbsoluteFile() + "是文件");
        } else {
            System.out.println(file.getAbsoluteFile() + "是文件夹");
            File[] files = file.listFiles();
            if (files != null && files.length > 0) {
                for (File f : files) {
//                    if(file.isFile()){
//                        System.out.println(file.getAbsoluteFile() + "是文件");
//                    }else{
//                        System.out.println(file.getAbsoluteFile() + "是文件夹");
////                        ...
//                    }
//                }

                    //在这就开始递归了;
                    digui(f);
                }
            }
        }
    }

IO流

用来处理设备之间的数据传输,可以用输入/输出流(Stream)的方式进行。 image.png

按数据单位分类: 字节流 Stram, 字符流(Reader/Writer)
按数据流向分类:输入流 ,输出流
按流的角色分类:节点流,处理流


image.png
文件字节输入流
try {
            FileInputStream in = new FileInputStream("E:\\temp\\a.txt");

            byte[] b = new byte[100];
            int len = 0;
            
            while ((len = in.read(b)) != -1) {
                // 说明还没有读到最后  文件输入流,就是读文件, 写到 byte数组中
                System.out.println(new String(b, 0, len));
            }
            in.close();


        } catch (IOException e) {
            e.printStackTrace();
        }

文件字节输出流

 private static void showFileOutputStream() {
        try {
            FileOutputStream out = new FileOutputStream("E:\\temp\\b.txt");
            String content = "中华人民共和国万岁";
            out.write(content.getBytes());          // 将内容写到内存中;
            out.flush();     // 把内存中的数据刷写到硬盘
            out.close();     // 关闭流
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

文件字节流很通用,可以用来操作任何类型的文件(图片,压缩包等),因为它使用的是二进制。

字符输入流

  private static void showFileReader() {
        try {
            FileReader fr = new FileReader("E:\\temp\\a.txt");
            char[] chars = new char[20];
            int len = 0;
            while ((len = fr.read(chars)) != -1) {
                System.out.println(new String(chars, 0, len));
            }
            fr.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

字符输出流

 private static void showFileWriter(String text, String outPath) {
        try {
            FileWriter fw = new FileWriter(outPath);
            fw.write(text);
            fw.flush();
            fw.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

相关文章

  • JAVA_IO

    为啥又参考(copy)别人的呢?是为了站在前人的肩膀上学到更多的东西。(我能说是因为懒?)参考了:https://...

  • java_io

    java.io.File类的使用IO原理及流的分类  |---文件流   操作对象是文件     FileInp...

  • java_io 涉及到文件(txt,图片)上传,下载,读取文件,

    java_io 涉及到文件(txt,图片)上传,下载,读取文件,excel上传和下载 字符流和字节流 UML 字符...

  • Java_IO流

    IO流概念 在编程语言的I/O类库中常使用流这个抽象概念.它代表有能力产出数据的数据源对象或者是与能力接受数据的接...

  • Java_IO概述

    什么是IO 生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了保存就关掉了文件,可能文件就白白编辑了。当...

  • JAVA_IO 之BufferedInputStream Buf

    JAVA IO 之BufferedInputStream BufferedOutputStream 有时间整理一下...

  • Java_IO流学习笔记

    一、IO流整体结构图 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称...

  • Java_IO流及IO流在网络编程中的应用

    IO流 (抽象基类)字节流字符流输入流InputStreamReader输出流OutputStreamWriter...

网友评论

      本文标题:java_io

      本文链接:https://www.haomeiwen.com/subject/losqvhtx.html