二、File类

  概述

    文件和目录路径名的抽象表示形式

  构造方法

    public File(String pathname)
    public File(String parent,String child)
    public File(File parent,String child)

  成员方法

    创建功能

      public boolean createNewFile()
      public boolean mkdir()
      public boolean mkdirs()

    删除功能

      public boolean delete()

    重命名功能

      public boolean renameTo(File dest)

    判断功能

      public boolean isDirectory()
      public boolean isFile()
      public boolean exists()
      public boolean canRead()
      public boolean canWrite()
      public boolean isHidden()

    基本获取功能

      public String getAbsolutePath()
      public String getPath()
      public String getName()
      public long length()
      public long lastModified()

    高级获取功能

      public String[] list()
      public File[] listFiles()

三、递归

  概述

    方法定义中调用方法本身的现象

  注意事项

    要有出口,否则就是死递归
    次数不能太多,否则就内存溢出
    构造方法不能递归使用

  递归解决问题的思想

    找到出口
    找到规律

  图解

四、IO流

  概述

    IO流用来处理设备之间的数据传输
    上传文件和下载文件
    Java对数据的操作是通过流的方式
    Java用于操作流的对象都在IO包中

  分类

    按照数据流向
    输入流 读入数据
    输出流 写出数据
    按照数据类型
    字节流
    字符流
    什么情况下使用哪种流呢?
      如果数据所在的文件通过windows自带的记事本打开并能读懂里面的内容,就用字符流。其他用字节流。
      如果你什么都不知道,就用字节流

  IO流常用基类

    字节流的抽象基类:
      InputStream ,OutputStream。
    字符流的抽象基类:
      Reader , Writer。
      注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
      如:InputStream的子类FileInputStream。
      如:Reader的子类FileReader。

  字节流写数据

    OutputStream
    FileOutputStream

  FileOutputStream的构造方法

    FileOutputStream(File file)
    FileOutputStream(String name)

  字节流写数据的方式

    public void write(int b)
    public void write(byte[] b)
    public void write(byte[] b,int off,int len)

  字节流读取数据

    InputStream
    FileInputStream

    FileInputStream的构造方法

      FileInputStream(File file)
      FileInputStream(String name)

    FileInputStream的成员方法

      public int read()
      public int read(byte[] b)

    字节流读取数据两种方式

      一次读取一个字节
      一次读取一个字节数组
      每次可以读取多个数据,提高了操作效率

  字节缓冲流

    概述

      字节流一次读写一个数组的速度明显比一次读写一个字节的速度快很多,这是加入了数组这样的缓冲区效果,java本身在设计的时候,也考虑到了这样的设计思想(装饰设计模式做项目的时候讲解),所以提供了字节缓冲区流

    字节缓冲输出流

      BufferedOutputStream

    字节缓冲输入流

      BufferedInputStream

    字符流操作要注意的问题

      flush()的作用
      flush()和close()的区别

  转换流出现的原因及思想

    由于字节流操作中文不是特别方便,所以,java就提供了转换流。
    字符流=字节流+编码表。

  编码表概述和常见的编码表

    编码表

      由字符及其对应的数值组成的一张表

    常见编码表

      ASCII/Unicode 字符集
      ISO-8859-1
      GB2312/GBK/GB18030
      BIG5
      UTF-8

  字符串中的编码问题

    编码

      把看得懂的变成看不懂的

    解码

      把看不懂的变成看得懂的

  转换流构造方法

    OutputStreamWriter 字符输出流
    public OutputStreamWriter(OutputStream out)
    public OutputStreamWriter(OutputStream out,String charsetName)
    InputStreamReader 字符输入流
    public InputStreamReader(InputStream in)
    public InputStreamReader(InputStream in,String charsetName)

  OutputStreamWriter写数据

    public void write(int c)
    public void write(char[] cbuf)
    public void write(char[] cbuf,int off,int len)
    public void write(String str)
    public void write(String str,int off,int len)

  InputStreamReader读数据

    public int read()
    public int read(char[] cbuf)

  转换流的简化写法

    转换流的名字比较长,而我们常见的操作都是按照本地默认编码实现的,所以,为了简化我们的书写,转换流提供了对应的子类。
    FileWriter
    FileReader

  FileWriter和FileReader

    FileWriter写数据
    FileReader读取数据
    FileWriter和FileReader实现文本文件的复制

  字符缓冲流

    特殊功能
      BufferedWriter
      void newLine()
      BufferedReader
      String readLine()

IO流(二)的更多相关文章

  1. Java学习之路(十二):IO流<二>

    字符流 字符流是可以直接读写字符的IO流 使用字符流从文件中读取字符的时候,需要先读取到字节数据,让后在转换为字符 使用字符流向文件中写入字符时,需要把字符转为字节在写入文件 Reader和Write ...

  2. Java基础IO流(二)字节流小案例

    JAVA基础IO流(一)https://www.cnblogs.com/deepSleeping/p/9693601.html ①读取指定文件内容,按照16进制输出到控制台 其中,Integer.to ...

  3. IO流二

    1 数据流(了解) 1.1 概述 为了方便的操作java语言的基本数据类型和String类型的数据,可以使用数据流. 数据流的分类: DataInputStream DataOutputStream ...

  4. Java IO流(二)

    目录 字节缓冲流 概述 BufferedOutputStream类 继承父类的共性成员方法 构造方法 BufferedInputStream类 继承自父类的方法: 构造方法 文件复制练习(增强版 使用 ...

  5. IO流(二)

    一:字符流 字符输入流 写入文件字符流 import java.io.FileWriter; import java.io.IOException; //fileWriter public class ...

  6. IO流(二)__BufferedReader和BufferedWriter

    BufferedReader和BufferedWriter 字符流的缓冲区:缓冲区的而出现提高了对数据的读写效率对应类:BufferedWriter  BufferedReader缓冲区要结合流才可以 ...

  7. JavaSE(十二)之IO流的字节流(一)

    前面我们学习的了多线程,今天开始要学习IO流了,java中IO流的知识非常重要.但是其实并不难,因为他们都有固定的套路. 一.流的概念     流是个抽象的概念,是对输入输出设备的抽象,Java程序中 ...

  8. Java第三阶段学习(二、IO流--------递归,字节流Stream)

    一.递归 定义:指方法在方法内调用自己 适用于方法的运算主体不变,但运行的时候,参与运算的方法参数会变化注意:一定要给递归一个出口,否则内存溢出 练习题1:使用递归打印文件夹中所有的文件,包含子目录中 ...

  9. Java中的IO流(二)

    上一篇<Java中的IO流(一)>把学习IO流的字符流作了一下记录,本篇把字节流记录一下. 一,Java中的字节流 Java中的字节流的操作方式与字符流的操作方式大致相同,连方法名都是类似 ...

随机推荐

  1. JSON WEB Token(JWT)

    最近面试被问及单点登陆怎么解决?自己的项目前后端分离,自己实现token认证,token有失效时间,token中包含用户基本的信息.且一个当用户重新登陆后,原来的token就会失效,这么安全的一个to ...

  2. redis日志格式

    在redis.conf中,在大概65行左右有个loglevel # 指定日志记录级别# Redis总共支持四个级别:debug.verbose.notice.warning,默认为verbose# d ...

  3. Django中Q搜索的简单应用

    本节涉及: 1.Q搜索在前后端的设计 2.Django中Queryset对象的序列化(由后端扔给前端的数据必然会经过序列化) 3.前端动态地构造表格以便显示(动态创建DOM对象) 思路: 用户通过前端 ...

  4. (AB)Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round

    A. Right-Left Cipher time limit per test 1 second memory limit per test 256 megabytes input standard ...

  5. laravel之数据库

    mysql数据库设置其实在.env中 数据库修改在

  6. Windows系统IntelliJ IDEA安装配置

    IntelliJ IDEA安装 IntelliJ IDEA,是java编程语言开发的集成环境,业界公认的最好的Java开发IDE之一.打开IDEA官方网站https://www.jetbrains.c ...

  7. CSS3属性上调

    一.为什么使用CSS 1.有效的传递页面信息 2.使用CSS美化过的页面文本,使页面漂亮.美观,吸引用户 3.可以很好的突出页面的主题内容,使用户第一眼可以看到页面主要内容 4.具有良好的用户体验 二 ...

  8. PAT甲级1022 Digital Library

    题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805480801550336 题意: 每一本书有一个id, 书名,作 ...

  9. 需要优化代码的leetcode

    1  关于验证字符串的问题: 2

  10. iOS APP打开其他应用

    1.限于iOS的沙盒机制,一般的app都只在沙盒内操作运行,针对app之间的通讯苹果还是给出了一些解决方案的. 最常见的场景就是在一个APP中打开另一个APP. 核心就是一个API,通过制定一个一个U ...