Java文件操作大全(绝对的经典,值得收藏!)

Java文件操作

 //1.创建文件夹 
	//import java.io.*; 
	File myFolderPath = new File(str1); 
	try { 
		if (!myFolderPath.exists()) { 
		   myFolderPath.mkdir(); 
		} 
	} 
	catch (Exception e) { 
		System.out.println("新建目录操作出错"); 
		e.printStackTrace(); 
	}  

	//2.创建文件 
	//import java.io.*; 
	File myFilePath = new File(str1); 
	try { 
		if (!myFilePath.exists()) { 
			myFilePath.createNewFile(); 
		} 
		FileWriter resultFile = new FileWriter(myFilePath); 
		PrintWriter myFile = new PrintWriter(resultFile); 
		myFile.println(str2); 
		resultFile.close(); 
	} 
	catch (Exception e) { 
		System.out.println("新建文件操作出错"); 
		e.printStackTrace(); 
	}  

	//3.删除文件 
	//import java.io.*; 
	File myDelFile = new File(str1); 
	try { 
		myDelFile.delete(); 
	} 
	catch (Exception e) { 
		System.out.println("删除文件操作出错"); 
		e.printStackTrace(); 
	}  

	//4.删除文件夹 
	//import java.io.*; 
	File delFolderPath = new File(str1); 
	try { 
		delFolderPath.delete(); //删除空文件夹 
	} 
	catch (Exception e) { 
		System.out.println("删除文件夹操作出错"); 
		e.printStackTrace(); 
	}  

	//5.删除一个文件下夹所有的文件夹 
	//import java.io.*; 
	File delfile=new File(str1); 
	File[] files=delfile.listFiles(); 
	for(int i=0;i<files.length;i++){ 
		if(files[i].isDirectory()){ 
			files[i].delete(); 
		} 
	}   
	 
	//6.清空文件夹 
	//import java.io.*; 
	File delfilefolder=new File(str1); 
	try { 
		if (!delfilefolder.exists()) { 
			delfilefolder.delete(); 
		} 
		delfilefolder.mkdir(); 
	} 
	catch (Exception e) { 
		System.out.println("清空目录操作出错"); 
		e.printStackTrace(); 
	}  

	//7.读取文件 
	//import java.io.*; 
	// 逐行读取数据 
	FileReader fr = new FileReader(str1); 
	BufferedReader br = new BufferedReader(fr); 
	String str2 = br.readLine(); 
	while (str2 != null) { 
		str3 
		str2 = br.readLine(); 
	} 
	br.close(); 
	fr.close();  

	//8.写入文件 
	//import java.io.*; 
	// 将数据写入文件 
	try { 
		FileWriter fw = new FileWriter(str1); 
		fw.write(str2); 
		fw.flush(); 
		fw.close();  
	} catch (IOException e) { 
		e.printStackTrace(); 
	} 

	//9.写入随机文件 
	//import java.io.*; 
	try { 
		RandomAcessFile logFile=new RandomAcessFile(str1,"rw"); 
		long lg=logFile.length(); 
		logFile.seek(str2); 
		logFile.writeByte(str3); 
	}catch(IOException ioe){ 
		System.out.println("无法写入文件:"+ioe.getMessage()); 
	}  

	//10.读取文件属性 
	//import java.io.*; 
	// 文件属性的取得 
	File f = new File(str1); 
	if (af.exists()) { 
		System.out.println(f.getName() + "的属性如下: 文件长度为:" + f.length()); 
		System.out.println(f.isFile() ? "是文件" : "不是文件"); 
		System.out.println(f.isDirectory() ? "是目录" : "不是目录"); 
		System.out.println(f.canRead() ? "可读取" : "不"); 
		System.out.println(f.canWrite() ? "是隐藏文件" : ""); 
		System.out.println("文件夹的最后修改日期为:" + new Date(f.lastModified())); 
		} else { 
		System.out.println(f.getName() + "的属性如下:"); 
		System.out.println(f.isFile() ? "是文件" : "不是文件"); 
		System.out.println(f.isDirectory() ? "是目录" : "不是目录"); 
		System.out.println(f.canRead() ? "可读取" : "不"); 
		System.out.println(f.canWrite() ? "是隐藏文件" : ""); 
		System.out.println("文件的最后修改日期为:" + new Date(f.lastModified())); 
	} 
	if(f.canRead()){ 
		str2 
	} 
	if(f.canWrite()){ 
		str3 
	} 

	//11.写入属性 
	//import java.io.*; 
	File filereadonly=new File(str1); 
	try { 
		boolean b=filereadonly.setReadOnly(); 
	} 
	catch (Exception e) { 
		System.out.println("拒绝写访问:"+e.printStackTrace()); 
	}  

	//12.枚举一个文件夹中的所有文件 
	//import java.io.*; 
	//import java.util.*; 
	LinkedList<String> folderList = new LinkedList<String>(); 
	folderList.add(str1); 
	while (folderList.size() > 0) { 
		File file = new File(folderList.peek()); 
		folderList.removeLast(); 
		File[] files = file.listFiles(); 
		ArrayList<File> fileList = new ArrayList<File>(); 
		for (int i = 0; i < files.length; i++) { 
			if (files[i].isDirectory()) { 
				folderList.add(files[i].getPath()); 
			} else { 
				fileList.add(files[i]); 
			} 
		} 
		for (File f : fileList) { 
			str2=f.getAbsoluteFile(); 
			str3 
		} 
	} 

	//13.复制文件夹  
	//import java.io.*; 
	//import java.util.*; 
	LinkedList<String> folderList = new LinkedList<String>(); 
	folderList.add(str1); 
	LinkedList<String> folderList2 = new LinkedList<String>(); 
	folderList2.add(str2+ str1.substring(str1.lastIndexOf("\\"))); 
	while (folderList.size() > 0) { 
		(new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹 
		File folders = new File(folderList.peek()); 
		String[] file = folders.list(); 
		File temp = null; 
		try { 
			for (int i = 0; i < file.length; i++) { 
				if (folderList.peek().endsWith(File.separator)) { 
					temp = new File(folderList.peek() + File.separator 
					+ file[i]); 
				} else { 
					temp = new File(folderList.peek() + File.separator + file[i]); 
				} 
				if (temp.isFile()) { 
					FileInputStream input = new FileInputStream(temp); 
					FileOutputStream output = new FileOutputStream( 
					folderList2.peek() + File.separator + (temp.getName()).toString()); 
					byte[] b = new byte[5120]; 
					int len; 
					while ((len = input.read(b)) != -1) { 
						output.write(b, 0, len); 
					} 
					output.flush(); 
					output.close(); 
					input.close(); 
				} 
				if (temp.isDirectory()) {// 如果是子文件夹 
					for (File f : temp.listFiles()) { 
						if (f.isDirectory()) { 
							folderList.add(f.getPath()); 
							folderList2.add(folderList2.peek() 
							+ File.separator + f.getName()); 
						} 
					} 
				} 
			} 
		} catch (Exception e) { 
		//System.out.println("复制整个文件夹内容操作出错"); 
			e.printStackTrace(); 
		} 
		folderList.removeFirst(); 
		folderList2.removeFirst(); 
	} 

	//14.复制一个文件夹下所有的文件夹到另一个文件夹下 
	//import java.io.*; 
	//import java.util.*; 
	File copyfolders=new File(str1); 
	File[] copyfoldersList=copyfolders.listFiles(); 
	for(int k=0;k<copyfoldersList.length;k++){ 
		if(copyfoldersList[k].isDirectory()){ 
			ArrayList<String>folderList=new ArrayList<String>(); 
			folderList.add(copyfoldersList[k].getPath()); 
			ArrayList<String>folderList2=new ArrayList<String>(); 
			folderList2.add(str2+"/"+copyfoldersList[k].getName()); 
			for(int j=0;j<folderList.length;j++){ 
				 (new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹 
				 File folders=new File(folderList.get(j)); 
				 String[] file=folders.list(); 
				 File temp=null; 
				 try { 
					 for (int i = 0; i < file.length; i++) { 
						 if(folderList.get(j).endsWith(File.separator)){ 
							 temp=new File(folderList.get(j)+"/"+file[i]); 
						 } else { 
							 temp=new File(folderList.get(j)+"/"+File.separator+file[i]); 
						 } 
						 FileInputStream input = new FileInputStream(temp); 
						 if(temp.isFile()){ 
							 FileInputStream input = new FileInputStream(temp); 
							 FileOutputStream output = new FileOutputStream(folderList2.get(j) + "/" + (temp.getName()).toString()); 
							 byte[] b = new byte[5120]; 
							 int len; 
							 while ( (len = input.read(b)) != -1) { 
								 output.write(b, 0, len); 
							 } 
							 output.flush(); 
							 output.close(); 
							 input.close(); 
						 } 
						 if(temp.isDirectory()){//如果是子文件夹 
							 folderList.add(folderList.get(j)+"/"+file[i]); 
							 folderList2.add(folderList2.get(j)+"/"+file[i]); 
						 } 
					 } 
				 } 
				 catch (Exception e) { 
					 System.out.println("复制整个文件夹内容操作出错"); 
					 e.printStackTrace(); 
				 } 
			} 
		} 
	} 

	//15.移动文件夹 
	//import java.io.*; 
	//import java.util.*; 
	LinkedList<String> folderList = new LinkedList<String>(); 
	folderList.add(str1); 
	LinkedList<String> folderList2 = new LinkedList<String>(); 
	folderList2.add(str2 + str1.substring(str1.lastIndexOf("\\"))); 
	while (folderList.size() > 0) { 
		(new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹 
		File folders = new File(folderList.peek()); 
		String[] file = folders.list(); 
		File temp = null; 
		try { 
			for (int i = 0; i < file.length; i++) { 
				if (folderList.peek().endsWith(File.separator)) { 
					temp = new File(folderList.peek() + File.separator + file[i]); 
				} else { 
					temp = new File(folderList.peek() + File.separator + file[i]); 
				} 
				if (temp.isFile()) { 
					FileInputStream input = new FileInputStream(temp); 
					FileOutputStream output = new FileOutputStream( 
					folderList2.peek() + File.separator + (temp.getName()).toString()); 
					byte[] b = new byte[5120]; 
					int len; 
					while ((len = input.read(b)) != -1) { 
						output.write(b, 0, len); 
					} 
					output.flush(); 
					output.close(); 
					input.close(); 
					if (!temp.delete()) 
					System.out.println("删除单个文件操作出错!"); 
				} 
				if (temp.isDirectory()) {// 如果是子文件夹 
					for (File f : temp.listFiles()) { 
						if (f.isDirectory()) { 
							folderList.add(f.getPath()); 
							folderList2.add(folderList2.peek() + File.separator + f.getName()); 
						} 
					} 
				} 
			} 
		} catch (Exception e) { 
			// System.out.println("复制整个文件夹内容操作出错"); 
			e.printStackTrace(); 
		} 
		folderList.removeFirst(); 
		folderList2.removeFirst(); 
	} 
	File f = new File(str1); 
	if (!f.delete()) { 
		for (File file : f.listFiles()) { 
			if (file.list().length == 0) { 
				System.out.println(file.getPath()); 
				file.delete(); 
			} 
		} 
	} 
	//16.移动一个文件夹下所有的文件夹到另一个目录下 
	//import java.io.*; 
	//import java.util.*; 
	File movefolders=new File(str1); 
	File[] movefoldersList=movefolders.listFiles(); 
	for(int k=0;k<movefoldersList.length;k++){ 
		if(movefoldersList[k].isDirectory()){ 
			ArrayList<String>folderList=new ArrayList<String>(); 
			folderList.add(movefoldersList[k].getPath()); 
			ArrayList<String>folderList2=new ArrayList<String>(); 
			folderList2.add(str2+"/"+movefoldersList[k].getName()); 
			for(int j=0;j<folderList.length;j++){ 
				 (new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹 
				 File folders=new File(folderList.get(j)); 
				 String[] file=folders.list(); 
				 File temp=null; 
				 try { 
					 for (int i = 0; i < file.length; i++) { 
						 if(folderList.get(j).endsWith(File.separator)){ 
							 temp=new File(folderList.get(j)+"/"+file[i]); 
						 } 
						 else{ 
							 temp=new File(folderList.get(j)+"/"+File.separator+file[i]); 
						 } 
						 FileInputStream input = new FileInputStream(temp); 
						 if(temp.isFile()){ 
							 FileInputStream input = new FileInputStream(temp); 
							 FileOutputStream output = new FileOutputStream(folderList2.get(j) + "/" + (temp.getName()).toString()); 
							 byte[] b = new byte[5120]; 
							 int len; 
							 while ( (len = input.read(b)) != -1) { 
								 output.write(b, 0, len); 
							 } 
							 output.flush(); 
							 output.close(); 
							 input.close(); 
							 temp.delete(); 
						 } 
						 if(temp.isDirectory()){//如果是子文件夹 
							 folderList.add(folderList.get(j)+"/"+file[i]); 
							 folderList2.add(folderList2.get(j)+"/"+file[i]); 
						 } 
					 } 
				 } 
				 catch (Exception e) { 
					 System.out.println("复制整个文件夹内容操作出错"); 
					 e.printStackTrace(); 
				 } 
			} 
			movefoldersList[k].delete(); 
		} 
	} 

	//17.以一个文件夹的框架在另一个目录创建文件夹和空文件 
	//import java.io.*; 
	//import java.util.*; 
	boolean b=false;//不创建空文件 
	ArrayList<String>folderList=new ArrayList<String>(); 
	folderList.add(str1); 
	ArrayList<String>folderList2=new ArrayList<String>(); 
	folderList2.add(str2); 
	for(int j=0;j<folderList.length;j++){ 
		(new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹 
		File folders=new File(folderList.get(j)); 
		String[] file=folders.list(); 
		File temp=null; 
		try { 
			for (int i = 0; i < file.length; i++) { 
				if(folderList.get(j).endsWith(File.separator)){ 
					temp=new File(folderList.get(j)+"/"+file[i]); 
				} 
				else{ 
					temp=new File(folderList.get(j)+"/"+File.separator+file[i]); 
				} 
				FileInputStream input = new FileInputStream(temp); 
				if(temp.isFile()){ 
					if (b) temp.createNewFile(); 
				} 
				if(temp.isDirectory()){//如果是子文件夹 
					folderList.add(folderList.get(j)+"/"+file[i]); 
					folderList2.add(folderList2.get(j)+"/"+file[i]); 
				} 
			} 
		} 
		catch (Exception e) { 
			System.out.println("复制整个文件夹内容操作出错"); 
			e.printStackTrace(); 
		} 
	} 

	//18.复制文件 
	//import java.io.*; 
	 int bytesum = 0; 
	 int byteread = 0; 
	 File oldfile = new File(str1); 
	 try { 
	 if (oldfile.exists()) { //文件存在时 
	 FileInputStream inStream = new FileInputStream(oldfile); //读入原文件 
	 FileOutputStream fs = new FileOutputStream(new File(str2,oldfile.getName())); 
	 byte[] buffer = new byte[5120]; 
	 int length; 
	 while ( (byteread = inStream.read(buffer)) != -1) { 
	 bytesum += byteread; //字节数 文件大小 
	 System.out.println(bytesum); 
	 fs.write(buffer, 0, byteread); 
	 } 
	 inStream.close(); 
	 } 
	 } 
	 catch (Exception e) { 
	 System.out.println("复制单个文件操作出错"); 
	 e.printStackTrace(); 
	 }  

	//19.复制一个文件夹下所有的文件到另一个目录 
	//import java.io.*; 
	File copyfiles=new File(str1); 
	File[] files=copyfiles.listFiles(); 
	for(int i=0;i<files.length;i++){ 
		if(!files[i].isDirectory()){ 
			int bytesum = 0; 
			int byteread = 0; 
			try { 
				InputStream inStream = new FileInputStream(files[i]); //读入原文件 
				FileOutputStream fs = new FileOutputStream(new File(str2,files[i].getName()); 
				byte[] buffer = new byte[5120]; 
				int length; 
				while ( (byteread = inStream.read(buffer)) != -1) { 
					bytesum += byteread; //字节数 文件大小 
					System.out.println(bytesum); 
					fs.write(buffer, 0, byteread); 
				} 
				inStream.close(); 
			} catch (Exception e) { 
				System.out.println("复制单个文件操作出错"); 
				e.printStackTrace(); 
			} 
		} 
	}  

	//20.提取扩展名 
	String str2=str1.substring(str1.lastIndexOf(".")+1);



from: http://uujava0322.iteye.com/blog/1045876

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java文件操作涉及到很多方面,包括文件的创建、读、复制、删除、重命名等等。下面是一些常用的Java文件操作函数: 1. 创建文件或目录 ```java File file = new File("file.txt"); if (!file.exists()) { file.createNewFile(); } ``` ```java File dir = new File("dir"); if (!dir.exists()) { dir.mkdir(); } ``` 2. 文件 ```java FileWriter writer = new FileWriter("file.txt"); writer.write("Hello World!"); writer.close(); ``` ```java FileOutputStream outputStream = new FileOutputStream("file.txt"); outputStream.write("Hello World!".getBytes()); outputStream.close(); ``` 3. 读取文件 ```java FileReader reader = new FileReader("file.txt"); char[] buffer = new char[1024]; int length; while ((length = reader.read(buffer)) > 0) { System.out.println(new String(buffer, 0, length)); } reader.close(); ``` ```java FileInputStream inputStream = new FileInputStream("file.txt"); byte[] buffer = new byte[1024]; int length; while ((length = inputStream.read(buffer)) > 0) { System.out.println(new String(buffer, 0, length)); } inputStream.close(); ``` 4. 复制文件 ```java File source = new File("source.txt"); File target = new File("target.txt"); Files.copy(source.toPath(), target.toPath()); ``` 5. 删除文件或目录 ```java File file = new File("file.txt"); file.delete(); ``` ```java File dir = new File("dir"); FileUtils.deleteDirectory(dir); ``` 6. 重命名文件或目录 ```java File file = new File("file.txt"); File newFile = new File("new_file.txt"); file.renameTo(newFile); ``` ```java File dir = new File("dir"); File newDir = new File("new_dir"); dir.renameTo(newDir); ``` 以上是一些常用的Java文件操作函数,如果需要更多的文件操作函数,可以查看Java官方文档或第三方库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值