只是对常用的操作做了一点整理,希望对大家有些许的帮助:
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文件操作是编程中常见的需求,它涉及到对磁盘上文件和目录的创建、删除、读写等操作。以下是对这些操作的详细说明: 1. **创建文件夹**:在Java中,我们可以使用`java.io.File`类的`mkdir()`或`mkdirs()`方法...
在Java编程语言中,从网络获取文件是一项常见的任务,它涉及到网络编程和I/O操作。以下是一些关于如何使用Java从网络下载文件的关键知识点: 1. **URL类**:Java中的`java.net.URL`类是表示统一资源定位符的对象,...
反射机制允许程序在运行时动态地获取类的信息(如类名、属性、方法等)并进行操作,提供了对Java对象模型的动态访问能力。 这些只是Java面试中可能会遇到的一部分问题,涵盖范围广泛,从基础语法到高级特性,深入...
首先,Java中的`File`类是操作文件和目录的基础,它提供了许多方法来创建、删除、重命名文件以及检查文件属性。在案例1中,通过`new File("D:\\hello.txt")`创建了一个`File`对象,然后调用`createNewFile()`方法...
虚拟机栈是JVM的私有内存区域,用于存储方法的局部变量和操作数栈。虚拟机栈是线程私有的,每个线程都有自己的虚拟机栈。 2.3 本地方法栈 本地方法栈是JVM的私有内存区域,用于存储native方法的参数和返回值。本地...
在Java中,进行基本的输入输出操作主要依赖于`java.util.Scanner`类。此类可以读取用户输入的标准输入、文件中的数据等,并自动根据所用类型进行转换。 **示例1:** ```java import java.util.Scanner; public ...
- Class文件中包含Java虚拟机指令集和符号表等信息,任何能够被编译成Class文件的语言,理论上都可以运行在Java虚拟机上。 2. 数据库连接池和线程池的概念及其使用: - 数据库连接池是预先创建并维护一定数量的...
首先,我们需要引入Java的`java.io`包,因为它包含了处理文件操作的所有基本类,如`File`、`FileInputStream`、`FileOutputStream`和`FileUtils`(如果使用Apache Commons IO库)。下面是一段基础的代码示例,展示如何...
EsClientTest.java文件可能包含了这些功能的实现,通过运行和调试这个测试类,你可以学习并理解如何在Java应用中有效地操作Elasticsearch。注意,实际使用时,需要根据实际的集群配置和业务需求进行相应的调整。
JAVA核心知识点整理学习 Java是一种广泛使用的高级编程语言,它的核心知识点涵盖了Java编程语言的...通过对Java核心知识点的整理和学习,我们可以更好地理解Java的基础知识和JVM的工作机制,从而更好地开发Java程序。
5. **IO流**:Java的IO流模型允许程序读写数据,包括文件操作、网络通信等。InputStream和OutputStream处理字节流,Reader和Writer处理字符流。NIO(New IO)在Java 1.4引入,提供更高效的数据传输方式。 6. **多...
开发过程中经常会遇到json数据的处理,而单独对json数据进行增删改并不方便,尤其是Geojson文件的处理,通过对网络资料的整理总结,下面介绍Java语言方法对json数据进行读取、添加、删除与修改操作。
7. **java.nio.file.***(Java 7及以上):非阻塞I/O框架,包括`Path`、`Files`、`FileSystem`等,提供了更高效的文件操作。 8. **java.io.BufferedReader**和**java.io.BufferedWriter**:用于读写文本文件时的...
标签 "java" 指出这是与Java编程相关的技术,"jre8" 表明它是基于Java 8运行时环境,而"批量改文件名" 是这个工具的核心功能,涉及文件操作和文件系统API的使用。在Java中,开发者可能利用`java.io.File`类及其相关...
从Java 8开始,lambda表达式和函数式编程的概念被引入,使得代码更加简洁和高效。 最后,Java的并发编程是另一个重要主题。Java提供了synchronized关键字、volatile变量、线程池、并发工具类(如Semaphore、...
- `java.io.File` 类用于文件和目录的操作,如创建、删除、重命名等。 - 使用`FileOutputStream`写入数据到本地文件,`FileReader`和`BufferedReader`用于读取本地文件。 8. **HTTPS连接** - 对于加密的HTTPS...
这个名为"Java从网络取得文件Java实用源码整理learns"的资源可能包含了一系列用于学习和实践如何使用Java从互联网下载文件的代码示例。下面我们将详细探讨相关的Java知识点。 1. **URL类**: Java中的`java.net....
NIO2进一步引入了异步I/O和文件系统事件通知,使得I/O操作更加灵活高效。 最后,Java集合框架是Java库中最常用的部分,包括List、Set、Queue以及Map等各种接口,以及ArrayList、LinkedList、HashSet、HashMap等实现...
10. **文件操作**:Java提供了File类来处理文件和目录,如创建、删除、移动和读写文件。 11. **网络编程**:Java的Socket和ServerSocket类可用于网络通信,实现客户端-服务器模式的应用。 12. **反射机制**:反射...