JavaIO函数学习:常见的文件读写函数
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文件读写常见的一些函数和类,当然,在实际的项目中,还有很多其他的文件操作函数,但掌握了以上这些,基本上可以满足大多数的需求了。
