java基础入门之IO流

作者:scanner小霸王 时间:2022-08-17 00:09:20 

io学习框架:

java基础入门之IO流

文件:

保存数据的地方。

java基础入门之IO流

1)常见文件对象的相关构造器和方法:

java基础入门之IO流

当进行File file = new File(filePath);只是在内存上有一个文件对象;

只有file.createNewFile();才会在磁盘创建文件

java基础入门之IO流

获取文件的相关信息:

utf8中,一个汉字是三个字节,所以当用字节流的read()方法一个字节一个字节的读取的时候,将会出现乱码的情况

java基础入门之IO流

2)目录的删除和增加:

a)用来删除文件或者文件夹

java基础入门之IO流

b)文件夹的创建:

java基础入门之IO流

Io流的原理:

java基础入门之IO流

流的分类:

字节流适用于声音等文件的传输,因为字节流是一个字节一个字节的读取,可以保证无损;

字符流虽然读取的效率高些,但更适用于文本的读取;

注意:inpuStream,OutputStream,Reader,Writer全是抽象类,创建对象时候要实现他们的子类即可。

java基础入门之IO流

1)InputSream输入流:

java基础入门之IO流

java基础入门之IO流

字节输入流:文件–》程序

a)fileInputStream.read()一个一个字节读取

(注意:输出的时候不能像如图框选的那样输出,因为read()读取的是下一个字符了)

java基础入门之IO流

b)改进,使用fileInputStream.read(buffer)

java基础入门之IO流

2)OutputStream

java基础入门之IO流

注意:如果使用OutputStream写入数据时候,文件不存在将自动进行文件的创建;

以下是写入数据的几种方式,

当使用红框的语句的时候,写入数据会追加在文件中;

否则,将覆盖文件的内容

java基础入门之IO流

完成文件的拷贝:(需要输入流和输出流的综合应用)

java基础入门之IO流

3)FileReader:

java基础入门之IO流

java基础入门之IO流

1)FileReader的使用:

java基础入门之IO流

4) FileWriter:

java基础入门之IO流

使用filewriter后,必须关闭(close)或者刷新(flush),否则写入不到指定文件

java基础入门之IO流

a)FileWriter的使用:

使用filewriter后,必须关闭(close)或者刷新(flush),否则写入不到指定文件

close()相当于flush()+关闭

java基础入门之IO流

节点流和处理流:

1)节点流:直接读取数据源的流

java基础入门之IO流

java基础入门之IO流

java基础入门之IO流

2)处理流:对节点流进行包装

java基础入门之IO流

例如BufferReader:

readLine()是按行读取:

当返回null时候,表示文件读取完毕;

关闭流的时候,这里只需要关闭BufferReader,因为底层会自动去关闭节点流;

java基础入门之IO流

BufferWriter:

注意:如果需要追加在文件的话,是在节点流进行设置;

newLine()插入一个换行符

java基础入门之IO流

两者的区别与联系:

java基础入门之IO流

BufferReader和BufferWriter实现文件拷贝:

注意:BufferReader和BufferWriter是安装字符操作;

不要操作二进制文件(声音,视频,doc,pdf,等等),可能会造成文件损坏

java基础入门之IO流

处理字节的处理流:

BufferedOutputStream和BufferedInputStream实现拷贝图片:

java基础入门之IO流

当然,除此之外,BufferedOutputStream和BufferedInputStream也可以实现文本的拷贝;

对象处理流:专门处理对象的流,专门把对象保存到文件中,并且能够从文件中恢复;

序列化:就是保存数据的时候,保存数据的值和数据类型;

标记接口:没有任何方法

java基础入门之IO流

1)ObjectInputStream:(也是包装流)

java基础入门之IO流

示例:

java基础入门之IO流

2)ObjectOutputStream:

java基础入门之IO流

示例:

序列化之后,保存的文件格式,不是纯文本,而是按照他的格式来存储

java基础入门之IO流

当反序列化的时候需要用到getName();toString()等方法的时候,序列化也要一并把这些方法存储进行;

java基础入门之IO流

对象流注意事项:

java基础入门之IO流

标准输入和输出:

标准输入,从键盘是获取:Scanner scanner = new Sanner(System.in);

java基础入门之IO流

转换流:

InputStreamReader:字节流转化(包装)为字符流;

java基础入门之IO流

java基础入门之IO流

1)**OutputStreamReader:**字节流转化(包装)为字符流;

java基础入门之IO流

java基础入门之IO流

java基础入门之IO流

打印流:

(只有输出流,没有输入流)

PrintStream和PrintWriter(可以把信息打印到文件里面)

1)PrintStream

java基础入门之IO流

java基础入门之IO流

java基础入门之IO流

2)PrintWriter

java基础入门之IO流

PrintWriter可以传入一个输出流,这里System.out是标准输出

java基础入门之IO流

Properties类:

1)传统的处理方法(使用处理流加载配置文件),不方便:

java基础入门之IO流

2)Properties方式:

java基础入门之IO流

java基础入门之IO流

来源:https://blog.csdn.net/weixin_42063820/article/details/117869178

标签:java,入门,IO流
0
投稿

猜你喜欢

  • Android自定义View实现遥控器按钮

    2021-12-27 09:50:47
  • Java关于JDK1.8新特性的Stream流

    2021-06-02 11:36:35
  • 分析Java中为什么String不可变

    2023-06-05 23:33:25
  • Java实现多线程大批量同步数据(分页)

    2021-12-18 17:41:18
  • Java多线程高并发中的Fork/Join框架机制详解

    2021-06-17 01:08:08
  • Spring如何使用@Indexed加快启动速度

    2022-05-02 10:50:40
  • Android集成微信支付功能

    2023-07-14 10:38:11
  • hadoop运行java程序(jar包)并运行时动态指定参数

    2023-07-27 11:02:10
  • SpringBoot多线程进行异步请求的处理方式

    2021-11-10 10:48:30
  • javamail 发送邮件的实例代码分享

    2021-12-22 15:10:47
  • Java与Node.js利用AES加密解密出相同结果的方法示例

    2021-09-11 21:06:58
  • 如何在Spring Boot中使用MQTT

    2023-10-08 20:39:13
  • log4j使用教程详解(怎么使用log4j2)

    2022-06-18 23:48:47
  • Java虚拟机内存分配与回收策略问题精细解读

    2021-08-12 18:54:51
  • C++联合体union用法实例详解

    2023-12-01 16:34:00
  • mybatis-plus乐观锁实现方式详解

    2022-09-27 16:12:27
  • Android中使用findViewByMe提升组件查找效率

    2021-08-12 08:30:13
  • java实现斗地主发牌系统

    2023-06-11 01:48:40
  • Android 数据库文件存取至储存卡的方法

    2023-05-08 19:12:14
  • springboot用controller跳转html页面的实现

    2022-08-15 06:57:51
  • asp之家 软件编程 m.aspxhome.com