一、File类
1、java.io.File类
代表硬盘上的一个文件或者文件夹(是java虚拟机与操作系统联系起来的桥梁)
java中文件路径的表示方式
Windows中表示 c:\suns.txt
Java中表示的两种方式
c:\\suns.txt
c:/sun.txt
2、File类的构造方法
构造方法 File类没有无参构造方法
File(String pathname) //参数为文件的绝对路径
File(String parent, String child)
File(File parent, String child)
3、File类的常用方法
createNewFile():boolean //创建文件,创建成功返回true,否则返回false
mkdir() / mkdirs():boolean //创建文件夹,创建成功返回true,否则返回false
delete() :boolean //删除文件或文件夹,删除成功返回true,否则返回false
deleteOnExit():boolean //虚拟机终止时,请求删除此抽象路径名表示的文件或目录
exists() :boolean //判断文件对象是否存在,存在返回true,否则返回false
isFile() :boolean //判断该文件对象是否为文件,是就返回true,否则返回false
isDirectory() :boolean //判断该文件对象是否为文件夹,是就返回true。否则false getPath();String //创建时使用的是相对路径则返回相对路径,反之亦然
getName():String //获取文件或文件夹的名字
getParent() :String //获取父目录
getAbsolutePath():String //返回绝对路径
list():String[] //返回目录当前file对象代表的目录下所有文件、文件夹名 listFiles();File[] //返回一个文件数组,里面存的是某个目录下所有的文件及文件夹
二、什么是java中的IO流
I:即input,指的是从外界将数据输入到程序中。
O:即output,指的是将数据从程序输出到外界。
流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出。程序本身不需要缓冲区,所有的缓冲都由系统提供。
三、IO流的分类
按照流的方向:输入流(inputStream)和输出流(outputStream)。
按照实现功能分:节点流(可以从或向一个特定的地方(节点)读写数据。如 FileReader)和处理流(是对一个
已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如 BufferedReader。处理流的构造方法总是要
带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。)
按照处理数据的单位:字节流和字符流。字节流继承于 InputStream 和 OutputStream,字符流继承于
InputStreamReader 和 OutputStreamWriter。
主要分为字符流与字节流:
字符流:就是按照字符为处理单位的数据流,一般用于对文档或文字、字符叫多的文件。
字节流:就是按照字节为处理单位的数据流,可以用于对文档、图片、音频、视频的处理。
四、如何使用IO流
使用IO流的步骤如下
1,确定源,确定源头,即流的流向,通常配合File进行确定。
2,选择流,不同的IO流适合不同的情况,我们可以根据具体情况,选择最适合的流。
3,进行操作,对获取到的数据进行操作。
4,关闭流,使用结束后,关掉输入输出流
具体用法如下所示:
提示:其他的流用法与之相同,读者可以自行试验
五、乱码问题
1,乱码产生的原因
编码时采用一种字符集,但是解码时使用了其他的字符集
2、字符编码 (Character encoding)、字集码是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数串行、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。
3、常见的 编码规范(字符集)
ASCII:长度是一个字节,共8位,最多可以表示256个字符
ISO-8859-1:通常叫做Latin-1,属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列
GB2312/GBK:汉字的国标码,专门用来表示汉字,是双字节编码,而英文字母和iso8859-1一致(兼容iso8859-1编 码)。其中gbk编码能够用来同时表示繁体字和简体字,而gb2312只能表示简体字,gbk是兼容gb2312编码的
UTF-8:1到6个字节变长编码,可以用来表示/编码所有字符