龙空技术网

Java中与文件操作有关的内容

左畔河岸 73

前言:

如今朋友们对“java中以文件内容”大致比较关心,大家都想要知道一些“java中以文件内容”的相关内容。那么小编也在网摘上收集了一些对于“java中以文件内容””的相关文章,希望我们能喜欢,小伙伴们快快来学习一下吧!

Java中与文件操作有关的内容

一、File类

File类是java.io包中唯一代表磁盘文件本身的对象,File类定义了一些与平台无关的方法来操作文件,可以通过调用File类中的方法,实现创建、删除、重命名文件等操作。File类的对象主要用来获取文件本身的一些信息,如文件所在的目录、文件的长度、文件读取权限等。

1.1 文件的创建与删除

一般情况下使用下面三种方法来创建文件对象:

(1)File(String pathname)

该构造方法通过将给定路径名字符串转换为抽象路径名来创建一个新File来实例。例如:File file1 = new File(“d:/javatest.txt”);

(2)File(String parent,String child)

该构造方法根据定义的父路径和子路径字符串(包含文件名)创建一个新的File对象。例如File file2 = new File(“D;/”,”javatest.txt”);

(3)File(File f,String child)

该构造方法根据parent抽象路径名和child路径名字符串创建一个新File实例。

例如File file3 = new File(D:/,”javatest.txt”);

当使用File类创建一个文件对象后,例如:File file = new File(“word.txt”);如果当前目录中不存在名称为word的文件,File类的对象可通过调用creatNewFile()方法创建一个名称为word.txt的文件;如果存在word.txt的文件,可以通过文件对象的delete()方法将其删除。

1.2 获取文件信息

File类的常用方法

方法 返回值 说明

getName() String 获取文件的名称

canRead() boolean 判断文件是否为可读的

canWrite() boolean 判断文件是否可被写入

exits() boolean 判断文件是否存在

Length() long 获取文件的长度(以字节为单位)

getAbsolutePath() String 获取文件的绝对路径

getParent() String 获取文件的父路径

isFile() boolean 判断文件是否存在

isDirectory() boolean 判断文件是否为一个目录

isHidden() boolean 判断文件是否为隐藏文件

lastModified() long 获取文件最后修改时间

二、文件输入/输出流

如果需要将数据永久保存,可使用文件输入/输出流与指定的文件建立连接,将需要的数据永久保存到文件中。

2.1 FileInputStream与 FileOnputStream类

FileInputStream(文件读取)与 FileOnputStream(文件写入)类都用来操作磁盘文件。

FileInputStream类常用的构造方法如下:

FileInputStream(String name).

FileInputStream(File file).

第一个构造方法使用给定的文件名name创建一个FileInputStream对象,第二个构造方法使用File对象创建FileInputStream对象。FileOnputStream类的操作与此相同,但其可以指定不存在的文件名。

注意虽然Java在程序结束时自动关闭所有打开的流,但是当使用完流后,显式的关闭所有打开的流是一个好习惯。

程序实例:

import java.io.*;

public class FileTest { // 创建类

public static void main(String[] args) { // 主方法

File file = new File("word.txt"); // 创建文件对象

try { // 捕捉异常

// 创建FileOutputStream对象

FileOutputStream out = new FileOutputStream(file);

// 创建byte型数组

byte buy[] = "我有一只小毛驴,我从来也不骑。".getBytes();

out.write(buy); // 将数组中信息写入到文件中

out.close(); // 将流关闭

} catch (Exception e) { // catch语句处理异常信息

e.printStackTrace(); // 输出异常信息

}

try {

// 创建FileInputStream类对象

FileInputStream in = new FileInputStream(file);

byte byt[] = new byte[1024]; // 创建byte数组

int len = in.read(byt); // 从文件中读取信息

// 将文件中信息输出

System.out.println("文件中的信息是:" + new String(byt, 0, len));

in.close(); // 关闭流

} catch (Exception e) {

e.printStackTrace(); // 输出异常信息

}

}

}

2.2 FileReader和FileWriter类

使用这两个类的好处是上面的两个类只提供了对字节或字节数组的读取方法。由于汉字在文件中占用两个字节,如果使用字节流,读取不好可能会出现乱码问题,此时采用字符流FileReader和FileWriter类即可避免这种现象。

本文系作者原创!

标签: #java中以文件内容