本文共 4429 字,大约阅读时间需要 14 分钟。
构造函数 :
public File(String pathname) :根据一个文件或文件夹的路径名封装一个File对象 public File(String parent,String child) :根据父目录的路径名和儿子的名称封装一个File对象 public File(File parent,String child) :根据父目录的File对象和儿子的名称封装一个File对象 public File(URI uri) :根据uri创建新的File实例;(这API翻译有点垃圾啊…)
常用的方法:
public boolean createNewFile():创建文件,如果文件不存在,才创建并且返回true,否则就返回false public boolean mkdir():创建文件夹,如果不存在,才创建并且返回true,否则就返回false public boolean mkdirs():创建文件夹,如果路径中有其它目录不存在,那么一并创建。 public boolean delete()删除此抽象路径名表示的文件或目录public boolean isDirectory() 是否是文件夹
public boolean isFile() 是否是文件 public boolean exists() 是否存在 public boolean canRead() 是否可读 public boolean canWrite() 是否可写 public boolean isHidden() 是否隐藏public String getAbsolutePath() 获取绝对路径
public String getPath() 获取封装File对象时传递的路径 public String getName() 获取名称 public long length() 获取文件的字节数 public long lastModified() 最后修改的时间的毫秒值String[] list() 获取当前目录下的所有子File的名称的数组
File[] listFiles() 获取当前目录下的所有儿子File对象的数组OutPutStream是所有字节输出流的超类;
FileOutPutStream:将数据写入文件的输出流;
构造函数: FileOutputStream(File file)创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 FileOutputStream(String name)创建一个向具有指定名称的文件中写入数据的输出文件流 FileOutputStream对象写出的都是byte[]数组;boolean append:是否换行(不换行的话会覆盖之前所写的内容)
FileOutputStream(File file,boolean append)创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 FileOutputStream(String name,boolean append)创建一个向具有指定名称的文件中写入数据的输出文件流System.lineSeparator()获取系统的换行符
InPutStream是所有字节输出流的超类;
FileOutPutStream:将文件中获取数据;
FileInputStream(File file) 创建输入流, 关联File对象表示的文件
FileInputStream(String name)创建输入流,关联路径名所表示的文件 FileInputStream(FileDescriptor fdObj) 文件描述符描述已有文件//用fis读数据(可以读文件中汉字),用fos写数据byte[] buf = new byte[1024];int len = 0;while((len = fis.read(buf)) != -1){fos.write(buf, 0, len);}fis.close();fos.close();
这种流内部维护了一个缓冲区字节数组,因此在读写时非常高效.
BufferedOutputStream:BufferedOutputStream(OutputStream out) 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。 BufferedOutputStream(OutputStream out, int size) 创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。
BufferedInputStream
BufferedInputStream(InputStream in) 创建一个 BufferedInputStream;BufferedInputStream(InputStream in, int size) 创建具有指定缓冲区大小的 BufferedInputStream;
构造函数:
public OutPutStreamWriter(OutPutStream out);使用默认字符集 public OutPutStreamWriter(OutPutStream out,Charset cs);使用给定字符集 public OutPutStreamWriter(OutPutStream out,CharsetEncoder enc);使用给定字符集编码器 public OutPutStreamWriter(OutPutStream out,String charsetName);使用指定字符集OutPutStreamWriter的实例对象osw的主要方法:
osw.write(int c) 写出一个字符osw.write(char[] cbuf) 写字符数组osw.write(char[] cbuf,int off,int len)写字符数组cbuf中,从off开始,共len个字符!osw.write(String str) 写一个字符串osw.write(String str,int off,int len)写一个字符串str中从off开始,共len个字符osw.write();osw.flush()osw.close();
构造函数:
public InPutStreamWriter(InPutStream in);使用默认字符集 public InPutStreamWriter(InPutStream in,Charset cs);使用给定字符集 public InPutStreamWriter(InPutStream in,CharsetDecoder dec);使用给定字符集解码器 public InPutStreamWriter(InPutStream in,String charsetName);使用指定字符集构造函数 :
public FileWriter(String fileName):
底层调用的是 new FileOutputStream(fileName)
public FileWriter(String fileName, boolean append); public FileWriter(File file); public FileWriter(File file, boolean append) public FileWriter(FileDescriptor fd) FileWriter = FileOutputStream + 本地默认编码表FileReader = FileInputStream + 本地默认编码表所以功能单一.
构造函数:
BufferedWriter(Writer out)创建一个使用默认大小输出缓冲区的缓冲字符输出流。 BufferedWriter(Writer out, int sz)创建一个使用给定大小输出缓冲区的新缓冲字符输出流构造方法
BufferedReader(Reader in)创建一个使用默认大小输入缓冲区的缓冲字符输入流。 BufferedReader(Reader in, int sz)创建一个使用指定大小输入缓冲区的缓冲字符输入流IO的继承体系: InputStream:字节输入流 |-- FileInputStream |-- BufferedInputStream OutputStream:字节输出流 |--FileOutputStream |-- BufferedOutputStream Reader:字符输入流 |-- InputStreamReader |-- FileReader |-- BufferedReader Writer:字符输出流 |-- OutputStreamWriter |-- FileWriter |-- BufferedWriter构造函数 1)四大基本流,与文件关联的流,他们的构造函数,直接接收文件!(与文件相关联) FileInputStream FileOutputStream FileReader FileWriter 2)四大装饰流,它们的构造函数都是接收本体系的顶级父类(本体系的顶级父类) BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter 3)转换流,把字节流变字符流,因此必然接收字节流。要对应字节输入流或字节输出流 InputStreamReader OutputStreamWriter
参考自: