Java文件操作实例详解
一、文件操作的概述
文件操作是指程序通过对文件或文件夹的读、写、删除等操作实现对数据的存储,读取与处理。Java提供了丰富的IO库,可以实现大量的文件操作。本文将介绍Java文件操作的基本流程和常见用法。
二、文件操作的基本流程
Java对文件操作的流程主要包括以下步骤:
- 判断文件或文件夹是否存在;
- 创建文件或文件夹;
- 读取或写入文件;
- 删除文件或文件夹。
下面将依次介绍这些步骤。
三、文件或文件夹的判断与创建
- 判断文件或文件夹是否存在
Java提供了File类的isDirectory()和isFile()方法,可以用来判断一个路径是否是文件夹或文件。具体用法如下:
File file = new File("路径");
if(file.isDirectory()){
System.out.println(file.getName() + "是文件夹");
}else if(file.isFile()){
System.out.println(file.getName() + "是文件");
}else{
System.out.println("路径不存在");
}
- 创建文件或文件夹
Java提供了File类的createNewFile()和mkdir()方法,可以用来创建文件或文件夹。具体用法如下:
File file = new File("test.txt");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
File folder = new File("testFolder");
folder.mkdir();
四、文件的读写与删除
- 读取文件
Java提供了File类、FileInputStream类和BufferedInputStream类,可以用来读取文件数据。其中FileInputStream用来读取文件数据,BufferedInputStream用来提高读取效率。
具体用法如下:
File file = new File("test.txt");
BufferedInputStream bis = null;
try {
bis = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[1024];
int len = 0;
while((len = bis.read(buffer)) != -1){
System.out.println(new String(buffer,0,len));
}
} catch (IOException e) {
e.printStackTrace();
} finally{
if(bis != null){
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 写入文件
Java提供了File类、FileOutputStream类和BufferedOutputStream类,可以用来写入文件数据。其中FileOutputStream用来写入文件数据,BufferedOutputStream用来提高写入效率。具体用法如下:
File file = new File("test.txt");
BufferedOutputStream bos = null;
try {
bos = new BufferedOutputStream(new FileOutputStream(file));
bos.write("Java文件操作实例".getBytes());
} catch (IOException e) {
e.printStackTrace();
} finally{
if(bos != null){
try {
bos.flush();
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 删除文件或文件夹
Java提供了File类的delete()方法,可以用来删除文件或文件夹。具体用法如下:
File file = new File("test.txt");
file.delete();
File folder = new File("testFolder");
folder.delete();
五、示例
下面给出两个文件操作的示例:
- 将一个文件复制到另一个文件夹:
File source = new File("source.txt");
File targetFolder = new File("targetFolder");
if(!targetFolder.exists()){
targetFolder.mkdir();
}
File target = new File(targetFolder.getAbsolutePath() + File.separator + source.getName());
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(new FileInputStream(source));
bos = new BufferedOutputStream(new FileOutputStream(target));
byte[] buffer = new byte[1024];
int len = 0;
while((len = bis.read(buffer)) != -1){
bos.write(buffer,0,len);
}
} catch (IOException e) {
e.printStackTrace();
} finally{
if(bis != null){
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(bos != null){
try {
bos.flush();
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 将一个文件夹及其子文件夹的所有文件复制到另一个文件夹:
File sourceFolder = new File("sourceFolder");
File targetFolder = new File("targetFolder");
if(!targetFolder.exists()){
targetFolder.mkdir();
}
copyFolder(sourceFolder,targetFolder);
public static void copyFolder(File sourceFolder,File targetFolder){
if(sourceFolder.isDirectory()){
File[] files = sourceFolder.listFiles();
for(File file : files){
if(file.isDirectory()){
File newFolder = new File(targetFolder.getAbsolutePath() + File.separator + file.getName());
newFolder.mkdir();
copyFolder(file,newFolder);
}else{
File newFile = new File(targetFolder.getAbsolutePath() + File.separator + file.getName());
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(new FileInputStream(file));
bos = new BufferedOutputStream(new FileOutputStream(newFile));
byte[] buffer = new byte[1024];
int len = 0;
while((len = bis.read(buffer)) != -1){
bos.write(buffer,0,len);
}
} catch (IOException e) {
e.printStackTrace();
} finally{
if(bis != null){
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(bos != null){
try {
bos.flush();
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
}
}
以上是Java文件操作的详细攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java文件操作实例详解 - Python技术站