zoukankan      html  css  js  c++  java
  • 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中当前目录对应的是工程的根目录

  • 相关阅读:
    [maven 问题]java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map
    [Java基础]Java异常捕获
    [JVM]常用JVM工具使用
    [JVM]一次线上频繁GC的问题解决
    [Java 基础]ResultSet 指定field映射到Pojo对象的Map
    [JVM]使用JMeter做压力测试
    [Linux命令]zip
    [Mysql]分组取最新一条
    [zookeeper_kafka]zookeeper和Kafka安装
    网络带宽是什么?
  • 原文地址:https://www.cnblogs.com/zjgtan/p/3317624.html
Copyright © 2011-2022 走看看