File 类的用法和 InputStream, OutputStream 的用法

一、File类(文件系统操作)

1.概念

全称为 java.io.File 类,来对一个文件(包括目录)进行抽象的描述。//但并不要求文件真实存在//

注:简单来说,File类是硬盘上一个文件的“抽象表示”——文件是存储在硬盘(外存)上,直接通过代码操作硬盘不太方便,就在内存中创建一个对应的对象,操作这个内存的对象,就可以间接的影响到硬盘(外存)的文件情况了~

2.用法

(1)观察get系列的特点和差异

先创建一个IO包,在包中创建IODemo类

(2)普通文件的创建

(3)普通文件的删除

(4)观察目录的创建

(5)观察已创建目录里的内容

(6)观察文件重命名

二、 InputStream, OutputStream(文件内容操作)

1.文件内容操作分类

文件内容操作是由很多类组成:

①针对纯文本文件,提供了一组类——“字符流”(Reader,Writer),读写的基本单位是“字符”。

②针对二进制文件和文本文件,提供了一组类——“字节流”(InputStream,OutputStream),读写的基本单位是“字节”。

注:如何理解字节(字符)流

字节流就是从内存中读字节(字符)数据的很多方法。

举个例子——从文件(也就是“内存”)读100个字节(字符)的数据,可以选择很多读法:

①一次性读100字节(字符);

②一次读50个字节(字符),分2次读 ;

③一次读20个字节(字符),分5次读 ;

④ 一次读1字节(字符),分100次;等

2.文件内容读写——数据流(stream)

注:

(写)输出流:英文名OutputStream,将内存数据到硬盘(外存)——用到(Writer、OutputStream)

(读)输入流:英文名InputStream,硬盘(外存)数据到内存——用到(Reader、InputStream)

3.字节流——InputStream概述

3.1概念

InputStream是一个抽象类(不能够直接实例化一个对象,但是可以new它的子类,例如FileInputStream),使用InputStream时,以写入为文本文件举例。

将硬盘地址内容读入内存数据中,读入的是文本字符对应的ascil码)。

3.2代码示例

需要先在项目目录下准备好一个 hello.txt 的文件,里面填充 "你好世界1111" 的内容

步骤:1)创建对象(打开文件)指定路径

           2)读reader/写writer文件

           3)关闭close文件   由于try(//实例化类对象自带,不用再写close方法) 

注:若文本文件里面的内容是汉字,读汉字时,结果为对应字符集utf8编码(一个汉字占3个字节);数字和字母打印的结果为其对应的ascil码

4.字节流——OutputStream概述

OutputStream是一个抽象类(不能够直接实例化一个对象,但是可以new它的子类,例如FileOutputStream),使用OutputStream时,以写入为文本文件举例。

将内存数据写入硬盘地址中,写的是对应字节的ascil码,输出在文本文件中查看。

步骤:1)创建对象(打开文件)指定路径

           2)读reader/写writer文件

           3)关闭close文件   由于try(//实例化类对象自带,不用再写close方法) 

注:read和write还可以一次读写多个字节,使用byte【】来表示。read会尽可能地把byte【】给填满,如果读到末尾,返回-1;write会把byte【】所有数据都写入文件。

5.字符流——Reader、Writer(简述)

Reader、Writer都是一个抽象类(不能够直接实例化一个对象,但是可以new它的子类,例如FileReader、FileWriter)

构造方法打开文件时,read方法来读(一次读一个char或者char【】)writer方法来写(一次写一个char或者char【】或者String)、close方法来关闭~

例如刚才的纯文本文件里有了“abc”,下面体会以下Reader抽象类:

步骤:1)创建对象(打开文件)指定路径

           2)读reader/写writer文件

           3)关闭close文件   由于try(//实例化类对象自带,不用再写close方法) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值