JAVA文件操作

1、java.io.File类

表示文件或目录,并定义了一些重要method操作文件和目录。但是一般文件的读写都通过流来操作。

重要操作:

判断是否是文件夹:

  1. File.isDirectory()

判断是否是文件:

  1. File.isFile()

在File类中进行目录的列表操作:

  1. public String[] list()
  2. public File[] listFiles()

得到文件路径: 

  1. public String getPath()

得到上级路径: 

  1. public String getParent()

创建目录

  1. public bool mkdir()

2、java.io的输入/输出流

    InputStream (abstract)和OutputStream (abstract)类是用于读取和写入字节流。InputStream的实现子类FileInputStream(File file)为文件的字节读取流,子类AudioInputStream为音频的读取流,PipedInputStream为管道输入流。OutputStream的实现子类FileOutputStream(File file)为文件的字节输出流,PipedOutputStream为管道输出流

    InputStream的read()方法以字节为单位读入数据,OutputStream的write()方法将指定字节写入输出流。

    Reader (abstract)和Writer (abstract)类用于读取和写入字符串流。Reader的子类InputStreamReader类将一个字节流转化为字符串流,通过read()方法从底层的字节流中读取一个或多个字符;FileReader类用于从文本文件中读取字符;(包装类)BufferedReader类用于从字符流中读取文本,通过readLine()方法读取字符流中的一行。对于Writer类有类似的子类实现OutputStreamWriter, FileWriter, (包装类)BufferedWriter(用于write()方法开销较大的类,多次缓冲,一次写入), (包装类)PrintWriter(提供带格式的输出println()等等)

可以这么说,真正的输入输出流是InputStream/OutputStream,Reader/Writer是针对字符转化的包装。

 

应用举例

  1. result = new PrintWriter(new File("result.txt")); //字符文件写入流
  2. segments[i] = new BufferedReader(new FileReader(i + ".txt")); //字符缓冲读入流
  3. BufferedReader console = new BufferedReader(
  4.       new InputStreamReader(System.in)); //阻塞读字符输入流

总结的,InputStream包装为InputStreamReader, File包装为FileReader,输出控制不甚严格

目前经常用在算法测试程序中。需要注意的是,java中当前目录对应的是工程的根目录

posted on 2013-09-12 19:15  zjgtan  阅读(302)  评论(0编辑  收藏  举报

导航