Java文件操作I

来源:互联网 发布:在中国卖的好跑车知乎 编辑:程序博客网 时间:2024/06/14 10:41
首先让我们来思考一下什么是文件。
这里的文件专指计算机中的文件,如我们经常使用的txt文本文件、word文档、视频文件、音频文件、windows系统下的exe可执行文件、编写程序的源代码文件等等,我们平时上网冲浪浏览的网页,其实也是一种文件。它与我们的计算机生活形影不离,一句话,我们使用电脑,就是与文件打交道。
概括的讲,计算机文件就是存储在某种存储设备上的数据流。
为了有组织的管理这些存储在计算机中的文件,以人类办公中的文件夹为灵感,设计了计算机中的文件夹\目录概念。接着就引入了文件系统,这个专门负责管理文件和文件夹\目录的软件。如Windows下的NTFS、FAT32和Linux下的Ext4,请参考相关词条。

下面进入正题,我们如何使用Java来操作这些文件。
一、了解一下Java的IO包
概述如下:通过数据流、序列化和文件系统来提供系统的输入和输出。
此包有12个接口、51个类(1.6),其中最需要我们首先掌握的是:
File类、Reader类、Writer类、InputStream类和OutputStream。
1、先来看看File类
我们这个话题的主角,此类提供了很多方法来操作文件,并且是与操作系统无关的,我们不用把精力投入在每个操作系统独特的路径写法,都交给这个类吧。对于文件操作,我们最常使用的几个是:
创建文件夹-mkdir()
创建文件-createNewFile()
删除文件夹或文件-delete()
查看文件的属性,如:
文件大小:length()
是否为隐藏文件:isHidden()
是否可读写:canRead()、canWrite()
最后修改时间:lastModified()

例子:

import java.io.*;public class TestFile{        public static void main(String[] args)        {                String folderPath = "./linc";                String filePath = "./linc/tmp.txt";                 try                {                File folder = new File(folderPath);                File file = new File(filePath);                System.out.println("make dir is " + file.mkdir());                System.out.println("make file is " + file.createNewFile());                System.out.println("file size is " + file.length());                System.out.println("is hidden: " + file.isHidden());                System.out.println("can read: " + file.canRead());                System.out.println("is can write: " + file.canWrite());                System.out.println("last modified: " + new Date(file.lastModified()));                }                catch(IOException ex)                {                        System.out.println("IOException: " + ex.getMessage());                }        }}

2、Reader和Writer类
读写字符串流的高手,这是inputStream类和OutputStream最大的区别。当我们对文本文件进行输入输出操作时,多使用Reader和Writer,会带给我没很大的便利。
先说写,然后咱们再读。需要注意的是,操作完毕后一定要调用close()方法。
Writer:
    此类的继承体系如下:

        java.lang.Object
            |
            |____java.io.Writer
                    |
                    |____java.io.PipedWriter
                    |
                    |____java.io.PrintWriter
                    |
                    |____java.io.FilterWriter
                    |
                    |____java.io.StringWriter
                    |
                    |____java.io.BufferedWriter
                    |
                    |____java.io.CharArrayWriter
                    |
                    |____java.io.OutputStreamWriter
                            |
                            |____java.io.FileWriter
顾名思义,最重要的方法是write,并重载了多次方便我们使用。

Reader:
    此类的继承体系与Writer类似:
        java.lang.Object
            |
            |____java.io.Reader
                    |
                    |____java.io.PipedReader
                    |
                    |____java.io.StringReader
                    |
                    |____java.io.FilterReader
                    |        |
                    |        |__java.io.PushbackReader
                    |
                    |____java.io.BufferedReader
                    |        |
                    |        |__java.io.LineNumberReader
                    |
                    |____java.io.CharArrayReader
                    |
                    |____java.io.InputStreamReader
                            |
                            |____java.io.FileReader
此类最重要的方法是read(),也是重载多次。

原创粉丝点击