欢迎访问宙启技术站
智能推送

JavaIO函数学习:常见的文件读写函数

发布时间:2023-06-26 08:01:13

Java是一种非常流行的编程语言,它提供了丰富的标准库,在文件操作方面也不例外。在本文中,我们将介绍JavaIO函数中的一些基本的文件读写函数,便于初学者更好地掌握Java的面向对象特性和编程思想。

1、File类

File类是Java中最基础的文件操作类,它包含了许多与文件相关的函数,常用的有如下几个:

1) 构造函数:用来创建File对象,可以表示文件或者目录。

public File(String pathname):

传入pathname表示文件路径,例如:new File("C:\\test.txt");

public File(String parent,String child):

传入parent表示父路径,child表示文件名或者目录名

2) 判断函数:

public boolean exists():

判断文件是否存在,存在返回true,不存在返回false;

public boolean isFile():

判断File对象是否为文件,是文件返回true,否则false;

public boolean isDirectory():

判断File对象是否为目录,是目录返回true,否则false;

public boolean canRead():

判断文件是否可读,如果可读返回true,否则false;

public boolean canWrite():

判断文件是否可写,如果可写返回true,否则false;

3) 文件操作函数:

public boolean createNewFile():

在指定路径下创建文件,成功返回true,否则false;

public boolean delete():

删除指定路径下的文件或者目录,删除成功返回true,否则false;

public boolean mkdir():

在指定路径下创建目录,成功返回true,否则false;

public boolean renameTo(File dest):

重命名文件,如果重命名成功则返回true,否则false。

2、FileReader和FileWriter

FileReader和FileWriter用来读取和写入文件内容,分别对应文本文件的输入和输出。他们的构造函数如下:

public FileReader(File file) throws FileNotFoundException;

public FileWriter(File file, boolean append) throws IOException;

其中,FileReader的参数是目标读取文件,FileWriter第一个参数是目标写入文件,第二个参数表示写入时是否追加。使用这两个类可以方便地对文本文件进行读写。

3、BufferedReader和BufferedWriter

BufferedReader和BufferedWriter是缓冲输入输出类,它们通常使用在对文件进行大量读写操作的情况下,可以提高读取或者写入效率,下面我们来看一下这两个类的构造函数和使用方法:

public BufferedReader(Reader in):

BufferedReader的构造函数需要传入一个Reader对象,通常,我们可以使用这个函数来包装FileReader,从而实现对文本文件进行逐行读取:

BufferedReader reader = new BufferedReader(new FileReader(new File("C:\\test.txt")));

String line;

while((line = reader.readLine()) != null) {

   System.out.println(line);

}

public BufferedWriter(Writer out):

BufferedWriter的构造函数需要传入一个Writer对象,常用的是用OutputStreamWriter包装FileOutputStream,从而实现对文本文件进行逐行写入:

BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("C:\\test.txt"))));

writer.write("hello,world");

writer.newLine();

writer.write("welcome to Java!"); 

writer.close();

在使用BufferedWriter进行文件写入时,需要注意,需要在每次写入完一行后,调用newLine()函数进行换行。

4、DataInputStream和DataOutputStream

DataInputStream和DataOutputStream通常用于读写二进制文件,比如音频、视频等。下面我们来看一下这两个类的构造函数和使用方法:

public DataInputStream(InputStream in):

DataInputStream的构造函数需要传入一个InputStream对象,作为二进制输入流,通常可以使用DataInputStream来进行对二进制文件的读取:

DataInputStream input = new DataInputStream(new FileInputStream(new File("C:\\test.dat")));

int num = input.readInt();

double price = input.readDouble();

input.close();

public DataOutputStream(OutputStream out):

DataOutputStream的构造函数需要传入一个OutputSteam对象,作为二进制输出流,通常可以使用DataOutputStream来进行二进制数据写入,需要注意的是,写入的数据类型必须和读取时的类型保持一致。

DataOutputStream output = new DataOutputStream( new FileOutputStream(new File("C:\\test.dat")));

output.writeInt(10);

output.writeDouble(12.5);

output.close();

5、RandomAccessFile

RandomAccessFile是一种可以随便访问文件的方式,可以读取、写入文件,也可以在文件中定位、添加记录、删除记录等操作。下面我们来看一下RandomAccessFile的构造函数和使用方法:

public RandomAccessFile(File file, String mode) throws FileNotFoundException;

//mode有"r","rw"两种类型,代表读和读写模式。

使用RandomAccessFile的时候,可以使用seek()函数来进行文件定位操作:

RandomAccessFile file = new RandomAccessFile(new File("C:\\test.txt"),"rw");

file.seek(0); //将文件定位到开头

file.writeBytes("hello, world!");

file.close();

以上是Java文件读写常见的一些函数和类,当然,在实际的项目中,还有很多其他的文件操作函数,但掌握了以上这些,基本上可以满足大多数的需求了。