菜鸟浅学Java I/O总结

前言:该总结涉及到利用Java I/O流创建文件,以不同的形式读写文件、操作文件。
一.理解Java的IO流
(1)什么是“抽象”?
是在头脑中抽出各种事物与现象的共同特征和属性,舍弃个别特征和属性的过程,在计算机科学总指高级的模型和低级的实体相对。(摘自维基百科)
(2)所以,流就是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件,网络,内存等。
(3)流具有方向性

(4)输入流(InputStream/Reader)、输出流(OutputStream/Writer)

(5)IO流是干什么的呢?
操作(创建、读写文件等)输入输出设备(磁盘、打印机、网络等)上的文件

二.IO流分类

从不同的角度对流进行分类
1. 处理的数据单位不同,可分为:字符流,字节流
2.数据流方向不同,可分为:输入流,输出流
3.功能不同,可分为:节点流,处理流
注:是不是对节点流和处理流不理解呢?
节点流:可以从/向一个特定的IO设备(如磁盘、网络)读/写数据的流,成为节点流,节点流也被称为低级流(摘自疯狂Java讲义);理解下来就是直接对IO设备上的文件进行直接读写,直接操作文件
处理流:用于对一个已存在的流进行连接或封装,通过封装后的流来实现数据读/写功能。处理流也称为高级流。需要去了解装饰器设计模式

三.操作流程
在Java中IO操作也是有相应步骤的,以文件操作为例,主要的操作流程如下:
1.使用File类打开一个文件(类比人要打开电脑上的文件并编辑,就需要知道文件路径和文件名)
2.通过字节流或字符流的子类,指定输出、输入的位置(找到编写的位置)
3.进行读/写操作(我们开始编辑文件)
4.关闭输入/输出(编辑完了,我们将要关闭文件,回到电脑桌面)
*IO操作是资源操作,最后一定不要忘记关闭
四.按数据单位分类来学习(分别用代码实践学习)

字节流
字节流主要是操作byte类型数据,以byte数组为准,主要操作类就是OutputStream、InputStream

字节输出流:OutputStream
OutputStream是整个IO包中字节输出流的最大父类,此类的定义如下:

public abstract class OutputStream extends Object implements Closeable,Flushable

从以上的定义可以发现,此类是一个抽象类,如果想要使用此类的话,则首先必须通过子类实例化对象,那么如果现在要操作的是一个文件,则可以使用:FileOutputStream类。通过向上转型之后,可以为OutputStream实例化

Closeable表示可以关闭的操作,因为程序运行到最后肯定要关闭

Flushable:表示刷新,清空内存中的数据

FileOutputStream类的构造方法如下:

public FileOutputStream(File file)throws FileNotFoundException
(本段内容摘自博客园博主:一直在等
写数据:

package IObyte;
import java.io.*;

public class test1 {
     public static void main(String[] args) throws IOException {
//       对照流程看代码
//      1. 使用File类打开一个文件(需要知道文件路径和文件名,如果没有这个文件,自动创建)
//      2.File.separator可以理解为分隔符
         File f = new File("F:/JavaWorkspce/IOtest/txt"+(String) File.separator+"test1.txt")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值