先了解一下文件的基本知识:
文件流概念可以简单的理解为文件在程序中是以流的形式操作的
创建文件的方法有3种(这些只是创建了一个对象,并不会创建文件或者文件夹):
1、根据路径创建一个对象:new File(String pathname)
;
2、根据父目录文件+子路径创建一个对象:new File(File pareng,String child)
;
3、根据父目录+子路径创建一个对象:new File(String parent,String child)
;
常见的方法有:
boolean createNewFile()
:File对象的文件参数是否存在,若存在,则返回false,如果不存在,则根据构造器参数创建文件,然后返回true;
boolean mkdir()
:创建目录,File对象中的路径必须存在
boolean mkdirs()
:创建多级目录,File对象中的路径可以不存在,若不存在,则会创建
boolean delete()
:删除空文件
boolean deleteOnExit()
:文件使用完成后删除
boolean canExecute()
:判断文件是否可执行
boolean canRead()
:判断文件是否可读
boolean canWrite()
:判断文件是否可写
boolean exists()
:判断文件是否存在
boolean isAbsolute()
:判断是否是绝对路径 文件不存在也能判断
String getName()
:获取文件名称
String getPath()
:获取文件相对路径
String getAbsolutePath()
:获取文件绝对路径
String getParent()
:如果没有父目录返回null
long lastModified()
:获取最后一次修改的时间
long length()
:获取文件长度
下面是关键点的IO流:
按照数据单位不同可分为字节流、字符流;
按照流向不同分为输入流、输出流;
按照角色不同分为节点流、处理流/包装流
(抽象基类) | 字节流 | 字符流 |
---|---|---|
输入流 | InputStream | Reader |
输出流 | OutputStream | Writer |
虽然IO流涉及40多个类,但是非常规则,都是从上面的4个基类衍生出来的
可以简单看下常见的IO类:
流的大类 | 分类 | 字节输入流 | 字节输出流 | 字符输入流 | 字符输出流 |
---|---|---|---|---|---|
节点流 | 访问文件 | FileInputSream | FileOutStream | FileReader | FileWriter |
访问数组 | ByteArrayInputStream | ByteArrayOutputStream | ByteArrayReader | ByteArrayWriter | |
访问管道 | PipedInputStream | PipedOutputStream | PipedReader | PipedWriter | |
访问字符串 | StringReader | StringWriter | |||
处理流 | 缓冲流 | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
转换流 | InputStreamReader | OutputStreamWriter | |||
对象流 | ObjectInputStream | ObjectOutputStream | |||
打印流 | PrintStream | PrintWriter | |||
推回输入流 | PushbackInputStream | PushbackReader | |||
特殊流 | DataInputStream | DataOutputStream |