欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

IO 使用说明介绍

程序员文章站 2023-12-03 09:17:58
在判断文件对象是否是文件或者目录时,必须要先判断该文件对象封装的内容是否存在,通过exists判断; 在文本文件操作流构造的时候还可指定编码方式; file f;...

在判断文件对象是否是文件或者目录时,必须要先判断该文件对象封装的内容是否存在,通过exists判断; 在文本文件操作流构造的时候还可指定编码方式;

file f;

f.exists();

f.isdirectory();

f.isfile();

f.deleteonexit();// 在程序退出的时候将指定文件删除;

f.createnewfile();// 在指定位置创建文件,如果文件已经存在,则返回false;

f.getparent();//此方法返回的是绝对路径中的父目录,如果获取的是相对路径,返回null,如果相对路径中有上一层目录则返回该目录;

 

file.separator //文件系统分割符,不同系统分割符不同;

filenamefilter://用于过滤文件名;

filenamefilter.accept(file dir,string name); //测试指定文件是否包含在某一文件列表中;

name:文件的名称;

public boolean accept(file dir, string name) {     return name.endswith(".txt");    }

 

//缓冲区的出现是为了提高流的操作效率而出现的;在创建缓冲区之前,必须要有流对象;

//缓冲技术其实是在对象内部封闭了数组,存完了之后一次性写入;

constructor: 将流传入buffer的构造函数;

notice:只要用到缓冲区,就得对缓冲区进行刷新;

buffered... buf;

buf.flush();

buf.close();//关闭缓冲区就是关闭缓冲区中的流对象;

bufferedreader bufr;

bufr.readline();//返回一行,但不包含换行符;

// 无论读取一行还是多个字符,其实最终都是在硬盘上一个一个的读取,所以最终使用的方法还是read方法一次读一个

/*  

* bytearrayinputstream:在构造的时候,需要接收数据源,而且数据源为字节数组;  

* bytearrayoutputstream:在构造的时候,不用定义数据目的,因为内部定义了一个可变长度的字节数组,它就是数据目的地;  

* 两个流对象都操作的是数组,并没有使用系统资源,不需要进行关闭的操作;  

*/

// 关闭流资源之前会刷新一次内部缓冲区中的数据;

// flush();刷新(将缓冲区中的数据存入文件中)后,流继续使用;

// 序列化:静态的成员不能序列化;

// 如果不想让非静态成员被序列化,加修饰符:transient int,,,

system.in:inputstream

system.out:outputstream