`
zhangxiang390
  • 浏览: 216475 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Java目录和文件操作整理

阅读更多

只是对常用的操作做了一点整理,希望对大家有些许的帮助:

public class TestFile {
	public static void main(String[] args) throws IOException {
		// 1.获取当前目录
		// 当前目录的URI
		System.out.println(Thread.currentThread().getContextClassLoader().
				getResource(""));
		System.out.println(ClassLoader.getSystemResource(""));
		// 当前目录绝对路径
		System.out.println(new File("").getAbsolutePath());
		System.out.println(new File("").getCanonicalPath());
		System.out.println(System.getProperty("user.dir"));
		
		// 2.文件的创建/删除
		String pwd=System.getProperty("user.dir");
		File f = new File(pwd, "1.txt");
		if (f.exists()) {
			f.delete();
			System.out.println(pwd + "\\1.txt 存在,已删除。");
		} else {
			f.createNewFile();
			System.out.println(pwd + "\\1.txt 不存在,已建立。");
		}
				
		// 3.目录的创建/删除
		pwd = pwd + "\\Sub"; // 将要建立的目录路径
		File d = new File(pwd); // 建立代表Sub目录的File对象,并得到它的一个引用
		if (d.exists()) { // 检查Sub目录是否存在
			d.delete();
			System.out.println("Sub目录存在,已删除");
		} else {
			d.mkdir(); // 建立Sub目录
			System.out.println("Sub目录不存在,已建立");
		}		
		
		// 4.获取目录下的所有子目录和文件
		File d1=new File(System.getProperty("user.dir")); // 建立当前目录中文件的File对象 
		File list[]=d1.listFiles(); // 取得代表目录中所有文件的File对象数组 
		System.out.println(pwd+" 目录下的内容:");
		for(int i=0;i<list.length;i++)
			if(list[i].isDirectory()){
				String tmp=String.format("%s       <DIR>   %s",
						new SimpleDateFormat("yyyy-MM-dd HH:mm").format(
						new Date(list[i].lastModified())).toString(),list[i].getName());
				System.out.println(tmp);
			}
			else if(list[i].isFile()){
				String tmp=String.format("%s %5s bytes   %s",
						new SimpleDateFormat("yyyy-MM-dd HH:mm").format(
						new Date(list[i].lastModified())).toString(),list[i].length(),
						list[i].getName());
				System.out.println(tmp);
				
			}

		// 5.写文件
		pwd=System.getProperty("user.dir");
		FileWriter fw = new FileWriter(pwd + "\\2.txt");
		fw.write("aaaa");
		fw.write("bbbb"+System.getProperty("line.separator"));
		fw.write("cccc");		
		fw.close();
		
		fw = new FileWriter(pwd + "\\2.txt", true); // append=true
		BufferedWriter bw=new BufferedWriter(fw); 
		bw.write("dddd");
		bw.newLine();
		bw.write("eeee");
		bw.close();		
		
		
		// 6.读文件
		FileReader fr = new FileReader(pwd + "\\2.txt");
		BufferedReader br = new BufferedReader(fr);
		String Line = br.readLine();
		while (Line != null) {
			System.out.println(Line);
			Line = br.readLine();
		}
		br.close();
		fr.close();
		
		readFromConsole();
		
	}
	
	// 从控制台读入
	public static void readFromConsole() {
		try {
			BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
			System.out.print("input sth:");
			String temp = in.readLine();
			System.out.print("your input is: \""+temp+"\"");
		} catch (IOException ioe) {
			ioe.printStackTrace();
		}
	}
	
	// 简单的文件复制
	public void copyFile(String src,String dest) throws IOException{
        FileInputStream in=new FileInputStream(src);
        File file=new File(dest);
        if(!file.exists())
            file.createNewFile();
        FileOutputStream out=new FileOutputStream(file);
        int c;
        byte buffer[]=new byte[1024];
        while((c=in.read(buffer))!=-1){
            for(int i=0;i<c;i++)
                out.write(buffer[i]);        
        }
        in.close();
        out.close();
    }

	// 删除非空文件夹
	public static boolean delDir(String path) throws IOException{
		if(path == null || path == "")
			return false;
		
		File rootDir=new File(path);
		File[] fileLst=rootDir.listFiles();
		for(int i=0; i<fileLst.length; i++) {
			if(fileLst[i].isDirectory()){
				if(!delDir(fileLst[i].toString()))
					return false;
				System.out.println("dir: "+fileLst[i]+" is deleted.");
			}			
			else if(fileLst[i].isFile()){
				if(!fileLst[i].delete())
					return false;
				System.out.println("file: "+fileLst[i]+" is deleted.");
			}
		}
		if(!rootDir.delete())
			return false;
		return true;
	}	
}
 
分享到:
评论

相关推荐

    java文件操作大全[整理].pdf

    Java文件操作是编程中常见的需求,它涉及到对磁盘上文件和目录的创建、删除、读写等操作。以下是对这些操作的详细说明: 1. **创建文件夹**:在Java中,我们可以使用`java.io.File`类的`mkdir()`或`mkdirs()`方法...

    Java从网络取得文件源码整理

    在Java编程语言中,从网络获取文件是一项常见的任务,它涉及到网络编程和I/O操作。以下是一些关于如何使用Java从网络下载文件的关键知识点: 1. **URL类**:Java中的`java.net.URL`类是表示统一资源定位符的对象,...

    Java面试题以及答案整理.pdf

    反射机制允许程序在运行时动态地获取类的信息(如类名、属性、方法等)并进行操作,提供了对Java对象模型的动态访问能力。 这些只是Java面试中可能会遇到的一部分问题,涵盖范围广泛,从基础语法到高级特性,深入...

    java中的IO整理完整版

    首先,Java中的`File`类是操作文件和目录的基础,它提供了许多方法来创建、删除、重命名文件以及检查文件属性。在案例1中,通过`new File("D:\\hello.txt")`创建了一个`File`对象,然后调用`createNewFile()`方法...

    JAVA核心面试知识点整理

    虚拟机栈是JVM的私有内存区域,用于存储方法的局部变量和操作数栈。虚拟机栈是线程私有的,每个线程都有自己的虚拟机栈。 2.3 本地方法栈 本地方法栈是JVM的私有内存区域,用于存储native方法的参数和返回值。本地...

    java整理的代码

    在Java中,进行基本的输入输出操作主要依赖于`java.util.Scanner`类。此类可以读取用户输入的标准输入、文件中的数据等,并自动根据所用类型进行转换。 **示例1:** ```java import java.util.Scanner; public ...

    JAVA面试整理,吐血整理

    - Class文件中包含Java虚拟机指令集和符号表等信息,任何能够被编译成Class文件的语言,理论上都可以运行在Java虚拟机上。 2. 数据库连接池和线程池的概念及其使用: - 数据库连接池是预先创建并维护一定数量的...

    java移动文件夹下所有文件

    首先,我们需要引入Java的`java.io`包,因为它包含了处理文件操作的所有基本类,如`File`、`FileInputStream`、`FileOutputStream`和`FileUtils`(如果使用Apache Commons IO库)。下面是一段基础的代码示例,展示如何...

    java操作es工具类整理.rar

    EsClientTest.java文件可能包含了这些功能的实现,通过运行和调试这个测试类,你可以学习并理解如何在Java应用中有效地操作Elasticsearch。注意,实际使用时,需要根据实际的集群配置和业务需求进行相应的调整。

    JAVA核心知识点整理学习.pdf

    JAVA核心知识点整理学习 Java是一种广泛使用的高级编程语言,它的核心知识点涵盖了Java编程语言的...通过对Java核心知识点的整理和学习,我们可以更好地理解Java的基础知识和JVM的工作机制,从而更好地开发Java程序。

    Java常用代码整理

    5. **IO流**:Java的IO流模型允许程序读写数据,包括文件操作、网络通信等。InputStream和OutputStream处理字节流,Reader和Writer处理字符流。NIO(New IO)在Java 1.4引入,提供更高效的数据传输方式。 6. **多...

    Java读取json文件并对json数据进行读取、添加、删除与修改操作

    开发过程中经常会遇到json数据的处理,而单独对json数据进行增删改并不方便,尤其是Geojson文件的处理,通过对网络资料的整理总结,下面介绍Java语言方法对json数据进行读取、添加、删除与修改操作。

    java常用的工具类整理28个

    7. **java.nio.file.***(Java 7及以上):非阻塞I/O框架,包括`Path`、`Files`、`FileSystem`等,提供了更高效的文件操作。 8. **java.io.BufferedReader**和**java.io.BufferedWriter**:用于读写文本文件时的...

    java开发的批量修改文件名称工具

    标签 "java" 指出这是与Java编程相关的技术,"jre8" 表明它是基于Java 8运行时环境,而"批量改文件名" 是这个工具的核心功能,涉及文件操作和文件系统API的使用。在Java中,开发者可能利用`java.io.File`类及其相关...

    java核心技术整理

    从Java 8开始,lambda表达式和函数式编程的概念被引入,使得代码更加简洁和高效。 最后,Java的并发编程是另一个重要主题。Java提供了synchronized关键字、volatile变量、线程池、并发工具类(如Semaphore、...

    Java从网络上下载数据Java实用源码整理learns

    - `java.io.File` 类用于文件和目录的操作,如创建、删除、重命名等。 - 使用`FileOutputStream`写入数据到本地文件,`FileReader`和`BufferedReader`用于读取本地文件。 8. **HTTPS连接** - 对于加密的HTTPS...

    Java从网络取得文件Java实用源码整理learns

    这个名为"Java从网络取得文件Java实用源码整理learns"的资源可能包含了一系列用于学习和实践如何使用Java从互联网下载文件的代码示例。下面我们将详细探讨相关的Java知识点。 1. **URL类**: Java中的`java.net....

    JAVA高级知识点整理.rar

    NIO2进一步引入了异步I/O和文件系统事件通知,使得I/O操作更加灵活高效。 最后,Java集合框架是Java库中最常用的部分,包括List、Set、Queue以及Map等各种接口,以及ArrayList、LinkedList、HashSet、HashMap等实现...

    Java学习笔记(整理)

    10. **文件操作**:Java提供了File类来处理文件和目录,如创建、删除、移动和读写文件。 11. **网络编程**:Java的Socket和ServerSocket类可用于网络通信,实现客户端-服务器模式的应用。 12. **反射机制**:反射...

Global site tag (gtag.js) - Google Analytics