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()
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(),也是重载多次。
这里的文件专指计算机中的文件,如我们经常使用的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(),也是重载多次。
- Java文件操作I
- Java文件I/O操作
- Java 对文件的I/O操作
- java I/O流之文件操作
- JAVA之文件操作(I/O)
- Java I/O系统文件简单操作
- Java文件操作2——文件I/O流
- 文件I/O操作
- 文件I/O操作
- 文件I/O操作
- I/O 文件操作
- 文件I/O操作
- I/O 文件操作
- 文件I/O操作
- 文件I/O操作
- java的I/O操作,读取和写入文件
- JAVA exception异常处理+I/O操作读写文件 笔记
- JAVA exception异常处理+I/O操作读写文件 笔记
- 抽象类 Abstract Class
- VS2010代码在Word 文档中插入并高亮显示
- 数据结构实现
- position的4种属性
- http://www.oralpractice.com/
- Java文件操作I
- httppost方式访问网络数据
- tomcat javaweb(实验四 Servlet开发与MVC设计模式)
- java DAO类 select方法范例,查询关键词
- Linux时间函数
- [Linux]链接_静态库和动态库
- 黑马程序员-高新技术-注解
- “王者”心法——经营之神王永庆独家管理秘笈
- Logback学习笔记 - 自动打印警告和错误消息