Java第十二章笔记总结

File类的构造方法

方法声明功能描述
File(String pathname)通过指定的一个字符串类型的文件路径来创建一-个新的File对象。
File(String parent, String child)根据指定的一个字符串类型的父路径和一个字符串类型的子路径 (包括文件名称)创建一个File 对象。
File(File parent, String child)根据指定的File类的父路径和字符串类型的子路径(包括文件名称) 创建一个File对象

File类常用方法

文件属性{
boolean exists():测试文件是否存在
boolean canWrite():测试文件是否可写
boolean canRead():测试文件是否可读
boolean isFile():测试当前文件是否是文件
boolean isDirectory():测试当前文件是否是目录
long lastModified():获取文件最后一次修改时间
long length():获取文件的长度,以字节为单位
boolean delete():删除当前文件
boolean renameTo(File dest):重命名当前File对象表示的文件
String getAbsolutePath():获取文件的绝对路径
String getName():获取文件的名称
boolean mkdir():创建当前File对象指定的目录
public String[] list(): 字符串数组返回当前文件夹下的所有文件
public File[] listFiles(): 文件数组返回当前文件夹下的所有文件
public String[] list(FilenameFilter filter)
public File[] listFiles(FilenameFilter filter)

    **}**

FilenameFilter

FilenameFilter它是一个接口。
boolean accept(File dir,String filename)
由此来限制由list()方法返回的文件数量,使
之只返回符合某一过滤器的文件。

IO流的分类

第一种分类方法:按数据流的方向不同
可以分为输入流输出流
如果数据是从外界流入程序的,则是输
入流,反之则是输出流。

第二种分类方法:按是否直接操作源
或者目标节分为节点流装饰流
在这里插入图片描述
第三种分类方法:按处理数据单位不同
可以分为字节流字符流

字节: byte,8bit, 最基础的存储单位。
字符: a-z,8000。

字节流

I0流中针对字节的输入输出提供了一系列的流,统称为字节流

字节流是程序中最常用的流,根据数据的
传输方向
可将其分为字节输入流字节输出流
在io包中,提供了两个抽象类InputStream
OutputStream,它们是字节流的顶级父类

字节输入流:

方法声明功能描述
int read()从输入流读取一个8位的字节,把它转换为0~255之间的整数,并返回这一整数
int read(byte[] b)从输入流读取若干字节,把它们保存到参数b指定的字节数组中,返回的整数表示读取字节的数目。
int read(byte[] b,int off, int len)从输入流读取若干字节,把它们保存到参数b指定的字节数组中,off指定字节数组开始保存数据的起始下标,len表示读取的字节数目。
void close()关闭此输入流并释放与该流关联的所有系统资源。

第一个read()方法是从输入流中逐个读入字节,而第二个和第三个
read()方法则将若干字节读入到字节数组中,从而提高读数据的效率

字节输出流:

方法名说明
close()关闭此输出流并释放与此流有关的所有系统资源。
flush()刷新输出流,即使缓冲区未满强制输出缓冲区中的字节。
write(byte[] b)将b.length个字节从指定的byte数组写入此输出流。
write(byte[] b, int off, int len)将指定byte数组中从偏移量off开始的len个字节写入此输出流
write(int b)将指定的字节写入此输出流。

输入输出子类图

在这里插入图片描述
在这里插入图片描述

缓冲区

实现缓冲区的两种方式
1.字节数组缓冲区
2.字节缓冲区

字符流

字符流的两个抽象的顶级父类为ReaderWriter

在这里插入图片描述
在这里插入图片描述

字符流操作文件

如果想从文件中直接读取字符可以使用字符输入流FileReader,通过此流可以从关联的文件中读取一个一组字符。

转换流

有时字节流和字符流之间需要进行转换
InputStreamReaderOutputStreamWriter
在这里插入图片描述

有时字节流字符流之间需要进行转换
InputStreamReaderOutputStreamWriter

界面设计

在这里插入图片描述
在这里插入图片描述
创建文件输入流对象去关联文件
然后用数据流DataInputStream在去包装刚刚创建的文件输入流
接着用转换流InputStreamReader转换为Reader类型的对象
用它去包装了刚刚建好的FileInputStream类型的对象
最后调用缓冲流BufferedReader去装饰InputStreamReader
构建了一个BufferedReader对象去传递刚刚创建好的InputStreamReader对象

在这里插入图片描述
装饰设计模式
装饰设计模式就是将程序的主体部分
装饰部分分离,即将变化较小的部分和
容易变化的部分分开。
在这里插入图片描述

interface IDE{
	void getFunction();
}
//程序主体实现了IDE接口
class Eclipse implements IDE{
    public Eclipse() {
			}
	public void getFunction() {
		System.out.println("Eclipse环境的基本功能");
	}
	
}
//插件 装饰部分也实现了IDE接口
class PlugIn implements IDE{
	private IDE ide;
	public PlugIn(IDE ide) {
		super();
		this.ide=ide;
	}
	public void getFunction() {
		ide.getFunction();
	}
}
class WTP extends PlugIn{
	public WTP(IDE ide) {
		super(ide);
	}
	public void getFunction(){
		super.getFunction();
		System.out.println("具有了开发WEB应用程序的功能!");
		
	}
}
class VE extends PlugIn{
	public VE(IDE ide) {
		super(ide);
	}
	public void getFunction() {
		super.getFunction();
		System.out.println("具有了开发图形用户界面程序的功能");
	}
}
public class EclipseSimulate{
	public static void main(String[] args) {
		IDE eclipse=new Eclipse();
		IDE eclipseWithWTP=new WTP(eclipse);//得到安装了WTP插件的Eclipse
		eclipseWithWTP.getFunction();
		IDE eclipseWithVE =new VE(eclipse);
		eclipseWithVE.getFunction();
	}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值