`

Java中的文件目录操作

阅读更多

1. 使用FileOutputStream向文件中写入内容

package com;

import java.io.*;
import java.nio.charset.Charset;

public class HelloIO {	
	public static void main(String[] args) throws IOException{
		String fileName = "e:\\test.txt";
		
		/*File file = new File(fileName);
		
		//判断文件是否存在,如果存在则删除
 		if(file.exists()){		 
			System.out.println(String.format("file %s is exists",fileName));
			file.delete();
			System.out.println("deleted");
		}
		 */

		FileOutputStream out = null;
		String content = "hello IO 玉开";
		try{
			boolean append = true;
			out = new FileOutputStream(fileName,append);
			String charsetName = "utf-8";
			byte[] byteArray = content.getBytes(Charset.forName(charsetName));
			out.write(byteArray);
			System.out.println("done");
		}
		finally{
			if(out != null){
				out.close();
				out = null;
			}
		}
	}
}
 

2. 逐行读取文件内容

import java.io.*;

public class HelloFileReader {

	public static void main(String[] args) throws IOException{
		String fileName = "E:\\test.txt";
		InputStreamReader rdr = null;
		try{
			FileInputStream stream = new FileInputStream(fileName);
			rdr = new InputStreamReader(stream,"utf-8"); 
			
			//逐行读取类
			LineNumberReader lineRdr = new LineNumberReader(rdr);
			String line;
			
			while((line = lineRdr.readLine()) != null){
				System.out.println(line);
			}
			
			stream.close();
		}finally{
			if(rdr != null){
				rdr.close();
				rdr = null;
			}
		}
	}
	
}

 3. 创建或者列出文件目录

package org.zyk;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Calendar;
import java.util.Date;

public class HelloJavaDir {
		public static void main(String[] args) throws IOException{
			String dir = "E:/test/test";
			File file = new File(dir);
			
			if(!file.exists()){
				//mkdirs可以创建多级目录
				file.mkdirs();
				System.out.println("create new dir");				
			}else{
				System.out.println("dir is exists");
				//这儿删除只是删除了最后一级目录
				//file.delete();
				//System.out.println("delete it");
			}
			
			/*在不确认目录是否存在的情况下创建文件*/
			String fileName ="e:/test/test/test.txt";
			File testFile = new File(fileName);
			if(testFile.exists()){
				System.out.println("testFile is exists");
			}else{
				File testParentFile = testFile.getParentFile();
				if(!testParentFile.exists()){
					//使用mkdirs可以创建多级目录
					testParentFile.mkdirs();
				}
				testFile.createNewFile();
				System.out.println("创建了testFile");
			}

			Date now = new Date();
			Calendar cal = Calendar.getInstance();
			cal.setTime(now);
			int year = cal.get(Calendar.YEAR);
			String strYear = String.valueOf(year);
			String dirYearName = dir + File.separator + strYear;
			//创建年目录
			File dirYear = new File(dirYearName);
			if(!dirYear.exists()){
				dirYear.mkdir();
				System.out.println("create year dir");
			}else{
				System.out.println("year dir exists");
			}
			
			String yearDefaultFileName = dirYearName + File.separator + "default.htm";
			File yearDefaultFile = new File(yearDefaultFileName);
			if(yearDefaultFile.exists()){
				System.out.println("yearDefaultFile exists");
			}else{
				yearDefaultFile.createNewFile();
				System.out.println("yearDefaultFile created");
			}
			
			//创建12个月的目录 
			for(int month = 1;month<=12;month++){
				String monthDirName = dirYearName + File.separator + String.format("%02d",month);
				File dirMonth = new File(monthDirName);
				//创建月的目录
				if(!dirMonth.exists()){
					dirMonth.mkdir();
					System.out.println("create month dir");
				}else{
					System.out.println("month dir exists");
				}
				
				//创建月的文件
				for(int fileIndex = 0;fileIndex<5;fileIndex ++){
					String monthFileName;
					if(fileIndex == 0)
						monthFileName = monthDirName + File.separator + "default.html";
					else
						monthFileName = monthDirName + File.separator + String.format("list-%d.html",fileIndex);
					File fileMonth = new File(monthFileName);
					if(!fileMonth.exists()){
						fileMonth.createNewFile();
						System.out.println("create month file");
					}else{
						System.out.println("month file exists");
					}
				}
			}
			
			//输出year目录下的所有文件和目录
			String[] yearChildren = dirYear.list();
			System.out.println("children of the yeardir :");
			for(String cFilePath : yearChildren){
				System.out.println("\t" + cFilePath);
			}
			
			//输出year目录下的所有文件和目录
			File[] yearChildrenFiles = dirYear.listFiles();
			System.out.println("children files of the yeardir :");
			for(File cFile :yearChildrenFiles){
				System.out.println("\t" + cFile.getAbsolutePath());
			}
			
			//输出year目录下的所有子目录
			//注意这个java抽象类实现,很方便
			FilenameFilter filterForFolder = new FilenameFilter(){
				@Override
				public boolean accept(File dir, String name) {
					File child = new File(dir.getAbsolutePath() + File.separator + name);
					
					return child.isDirectory();
				}
			};
			String[] filters = dirYear.list(filterForFolder);
			for(String filter : filters){
				System.out.println(filter);
			}
		}
}
 
分享到:
评论

相关推荐

    java中读取目录下指定的文件

    在Java编程语言中,读取目录下指定的文件是一项常见的任务,...通过灵活运用`File`类及其相关方法,可以实现各种复杂的文件操作需求。在实际开发中,根据具体场景选择合适的方法,并确保处理异常,以保证程序的健壮性。

    Java文件目录操作(模拟DOS)

    这个名为“Java文件目录操作(模拟DOS)”的程序旨在实现一个简单的命令行界面,让用户能够执行类似于DOS命令的操作,如查看目录(dir)、切换目录(cd)、创建目录(md)以及删除目录(rd)。以下是对这些功能的...

    java遍历文件目录生成树结构txt文件

    `Dir.class`和`Dir.java`是这次操作的核心文件,其中`Dir.java`包含了遍历目录的代码,而`Dir.class`是编译后的字节码文件,可以在命令行环境中直接运行。 首先,让我们了解`java.io.File`类。这是Java标准库中的一...

    java 操作文件工具类 java 操作文件工具类

    java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java ...

    自己写的java中文件的操作工具类,包括对目录的管理

    1. **文件操作**:在Java中,`java.io`包提供了丰富的类来执行文件操作,如`File`类用于文件和目录的基本操作,`FileReader`和`FileWriter`用于读写文本文件,`BufferedReader`和`BufferedWriter`用于提高读写效率,...

    java文件操作

    Java文件操作是编程中不可或缺的一部分,尤其是在处理I/O流、文件读写以及文件管理时。Apache Commons IO是一个非常实用的库,它为Java开发者提供了大量的工具类和方法,以简化文件操作。在这个场景中,我们关注的是...

    基于JAVA的常用文件操作方法

    在Java编程语言中,文件操作是一项基础且重要的任务。这篇博文主要探讨了如何使用Java进行常见的文件操作,包括创建、读取、写入、删除文件以及处理目录等。以下是对这些知识点的详细说明: 1. **创建文件**: 在...

    java文件操作类

    java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java...

    java读取项目中的文件(src目录下)

    - Java提供了一系列的I/O流类来处理文件操作。例如,`java.io.FileInputStream`可以用来读取二进制文件,`java.io.FileReader`和`java.io.BufferedReader`可以用来读取文本文件。 4. **相对路径和绝对路径**: - ...

    Java实现实时监控目录下文件变化的方法

    Java实现实时监控目录下文件变化的方法是指通过Java语言来实现实时监控目录下文件的变化情况,包括文件的创建、删除、修改等操作。这种方法可以应用于各种场景,例如文件系统监控、数据备份、文件同步等。 知识点1...

    java上传文件到linux服务器,操作linux服务器上文件,下载linux服务器文件,删除linux服务器文件

    使用时,需要配置认证方式,建立连接,然后开启SFTP会话进行文件操作。在实际应用中,还需要处理异常和关闭资源,确保程序的健壮性和资源的有效利用。 总之,Java结合ganymed-ssh2库,为开发者提供了强大的工具,使...

    Java打开文件目录

    在Java编程中,打开文件目录是一项基础操作,它在处理文件和目录管理时十分关键。本文将深入探讨如何使用Java来实现这一功能,并结合“PoiExcel”这一标签,我们还将讨论如何使用Apache POI库处理Excel文件。Apache ...

    超详细!java访问windows共享目录并下载文件

    这个过程涉及到几个关键的技术点,包括系统调用、网络通信和文件操作。在这个场景下,我们将通过`SmbUtils.java`和`CmdUtils.java`这两个类来实现。 1. **系统调用**: - 在Java中,可以通过`Runtime.getRuntime()...

    java实现windows文件系统操作监控

    Java的`java.nio.file`包提供了丰富的文件操作接口,如`Files.setPosixFilePermissions()`和`Files.newFileChannel()`,可以用来设置权限和创建文件通道进行锁定。 7. **文件自动加密**:文件加密通常涉及对文件...

    java 写文件 java 写文件 java 写文件 java 写文件

    Java编程语言提供了丰富的API用于处理文件操作,包括创建、读取、写入和删除文件等。在Java中,写文件是通过`java.io`包中的类实现的,主要涉及File类、FileWriter类、BufferedWriter类等。下面将详细阐述Java写文件...

    Java中文件或目录操作.pdf

    ### Java中文件或目录操作详解 #### 一、引言 在Java编程中,文件与目录的操作是一项基础但非常重要的技能。通过Java内置的`java.io.File`类,开发者能够轻松地实现对文件和目录的各种操作,如创建、删除、重命名...

    java读写文件,Java操作文件

    获取文件属性也是Java文件操作中的重要部分,可以帮助我们更好地管理文件系统。 ```java String path = request.getRealPath("/"); File f = new File(path, "ReadData.txt"); if (f.exists()) { System.out....

    java中遍历某个目录下的所有文件及文件夹中的文件

    ### Java中遍历某个目录下的所有文件及文件夹中的文件 在Java开发中,经常会遇到需要遍历指定目录及其子目录下所有文件的情况。本文将详细介绍如何使用Java标准库中的`java.io.File`类来实现这一功能。我们将通过一...

    java上传本地文件到oss指定目录

    在Java开发中,将本地文件上传到阿里云OSS(Object Storage Service)是常见的操作,尤其在处理大数据存储和分发时。阿里云OSS提供了一种高效、安全且经济的云端存储解决方案。本篇文章将详细讲解如何使用Java SDK...

    java 文件操作类

    总结来说,`java.io.File`类是Java中处理文件和目录的核心工具,配合自定义的`FileUtil`类,可以方便地进行各种文件操作,包括创建、删除、读取、写入等。熟练掌握`File`类和`FileUtil`类的使用,将使你在Java开发中...

Global site tag (gtag.js) - Google Analytics