博客
关于我
Java基础,输入输出
阅读量:803 次
发布时间:2023-01-29

本文共 5288 字,大约阅读时间需要 17 分钟。

Java文件操作Test系列

Test02:目录操作测试

package hanqi.test;
import java.io.File;
import java.io.IOException;
public class Test02 {
public static void main(String[] args) throws IOException {
File dir = new File("d:/test/newdir"); // 创建目录对象
if (dir.exists()) {
System.out.println("目录存在");
} else {
System.out.println("目录不存在");
dir.mkdirs(); // 创建新目录,自动处理父目录
System.out.println("创建目录成功");
}
String dir1 = "d:/test01"; // 存储目录路径
String filename = "test01.txt"; // 文件名
File d1 = new File(dir1); // 创建目录文件对象
if (!d1.exists()) {
d1.mkdirs(); // 确保目录存在
}
File file = new File(d1, filename); // 组合成文件对象
try {
file.createNewFile(); // 创建空文件
} catch (IOException e) {
e.printStackTrace();
}
}
}

Test07:文件存在与否及重命名操作

package hanqi.test;
import java.io.File;
import java.io.IOException;
public class Test07 {
public static void main(String[] args) throws IOException {
File file = new File("d:/test.txt"); // 创建文件对象
if (file.exists()) {
System.out.println(file.getName() + "存在");
file.delete(); // 删除存在的文件
System.out.println(file.getName() + "已删除");
// 文件重命名
file.renameTo(new File("d:/test2.txt")); // 移动文件
System.out.println(file.getName() + "文件移名成功");
} else {
System.out.println(file.getName() + "不存在");
try {
file.createNewFile(); // 创建新文件
System.out.println("创建" + file.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

Test03:字节流输入输出操作

package hanqi.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class Test03 {
public static void main(String[] args) throws Exception {
try {
// 字节输出流,写入文件
File file = new File("d:/test"); // 目标目录
if (!file.exists()) {
file.mkdirs(); // 创建不存在的目录
}
File targetFile = new File("d:/test03.txt"); // 目标文件
FileOutputStream out = new FileOutputStream(targetFile);
// 写入内容
String content = "今天是星期一";
byte[] bytes = content.getBytes();
out.write(bytes);
out.close(); // 释放资源
// 字节输入流,读取文件
FileInputStream in = new FileInputStream("d:/test/test03.txt");
byte[] buffer = new byte[1024];
int readBytes = in.read(buffer); // 读取数据
StringBuilder sb = new StringBuilder();
while (readBytes > 0) {
sb.append(new String(buffer, 0, readBytes));
readBytes = in.read(buffer); // 继续读取
}
System.out.println(sb.toString());
// 读取最后一次写入的内容
byte[] lastBytes = new byte[1024];
int lastRead = in.read(lastBytes);
System.out.println((lastRead > 0 ? new String(lastBytes, 0, lastRead) : ""));
} catch (Exception e) {
e.printStackTrace();
}
}
}

Test04:文件追加与覆盖操作

package hanqi.test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test04 {
public static void main(String[] args) throws IOException {
try {
// 另一个方法实现追加与覆盖
// 第一步:读取原文件内容
File source = new File("d:/test/test03.txt");
FileInputStream in = new FileInputStream(source);
byte[] buffer = new byte[1024];
StringBuilder sb = new StringBuilder();
int readBytes = -1;
while ((readBytes = in.read(buffer)) > 0) {
sb.append(new String(buffer, 0, readBytes));
}
// 第二步:写入新内容到文件中
String appendContent = "\n这是追加的内容"; // 追加的内容
FileOutputStream out = new FileOutputStream(source);
out.write(appendContent.getBytes());
out.close();
// 如果需要覆盖,可以直接写入新的内容
// out.write(sb.toString().getBytes());
System.out.println("操作完成");
} catch (Exception e) {
e.printStackTrace();
}
}
}

Test05:使用新构造方法进行文件操作

package hanqi.test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test05 {
public static void main(String[] args) throws IOException {
// 使用新的transit方法进行操作
FileOutputStream out = new FileOutputStream("d:/test/test03.txt", true); //追加模式
String content = "\r\n新的构造方法";
out.write(content.getBytes());
out.close();
// 阅读文件
FileInputStream in = new FileInputStream("d:/test/test03.txt");
byte[] buffer = new byte[1024];
StringBuilder sb = new StringBuilder();
int readBytes = -1;
while ((readBytes = in.read(buffer)) > 0) {
sb.append(new String(buffer, 0, readBytes));
}
System.out.println(sb.toString());
}
}

以上是对各Test类的完整实现及示例代码,涵盖了文件和目录的基本操作,从创建、删除、重命名,到字节流的读写,包括追加和覆盖等功能。

转载地址:http://waryk.baihongyu.com/

你可能感兴趣的文章
Objective-C实现datamatrix二维码识别 (附完整源码)
查看>>
Objective-C实现DateToDay 方法算法(附完整源码)
查看>>
Objective-C实现DBSCAN聚类算法(附完整源码)
查看>>
Objective-C实现DBSCAN聚类算法(附完整源码)
查看>>
Objective-C实现decision tree决策树算法(附完整源码)
查看>>
Objective-C实现degreeToRadian度到弧度算法(附完整源码)
查看>>
Objective-C实现depth first search深度优先搜索算法(附完整源码)
查看>>
Objective-C实现DES和3DES加解密算法(附完整源码)
查看>>
Objective-C实现des文件加密算法(附完整源码)
查看>>
Objective-C实现detectDirectedCycle检测定向循环算法(附完整源码)
查看>>
Objective-C实现deutsch jozsa算法(附完整源码)
查看>>
Objective-C实现DFS判断是否是二分图Bipartite算法(附完整源码)
查看>>
Objective-C实现DFS遍历或搜索图数据结构算法(附完整源码)
查看>>
Objective-C实现Diffie-Hellman算法(附完整源码)
查看>>
Objective-C实现Diffie—Hellman密钥交换(附完整源码)
查看>>
Objective-C实现Diffie—Hellman密钥交换(附完整源码)
查看>>
Objective-C实现Dijkstra最小路径算法(附完整源码)
查看>>
Objective-C实现dijkstra迪杰斯特拉算法(附完整源码)
查看>>
Objective-C实现dijkstra迪杰斯特拉算法(附完整源码)
查看>>
Objective-C实现Dijkstra迪杰斯特拉算法(附完整源码)
查看>>