如果您想要将不同日期文件夹中的文件读取并写入到指定服务器下的特定文件夹中,您可以结合之前提到的文件读写操作和服务器连接操作来实现。以下是一个示例代码,演示了这个过程:
import java.io.*;
import java.net.Socket;
public class FileTransferExample {
public static void main(String[] args) {
String sourceFolderPath = "/path/to/source/folder"; // 源文件夹路径
File sourceFolder = new File(sourceFolderPath);
String targetServerAddress = "192.168.0.100"; // 目标服务器地址
String targetFolderPath = "/path/to/target/folder"; // 目标文件夹路径
if (sourceFolder.exists() && sourceFolder.isDirectory()) {
// 获取源文件夹下的所有子文件夹
File[] dateFolders = sourceFolder.listFiles(File::isDirectory);
if (dateFolders != null) {
// 遍历每个日期文件夹
for (File dateFolder : dateFolders) {
System.out.println("处理日期文件夹: " + dateFolder.getName());
// 获取日期文件夹下的所有文件
File[] files = dateFolder.listFiles();
if (files != null) {
// 遍历每个文件
for (File file : files) {
if (file.isFile()) {
System.out.println("处理文件: " + file.getName());
// 读取文件内容
try (
FileInputStream inputStream = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
) {
// 连接目标服务器
try (
Socket targetSocket = new Socket(targetServerAddress, 80);
OutputStream outputStream = targetSocket.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream));
) {
// 写入目标文件
String line;
while ((line = reader.readLine()) != null) {
writer.write(line);
writer.newLine();
}
System.out.println("文件写入成功!");
} catch (IOException e) {
System.out.println("写入目标文件时发生异常:" + e.getMessage());
}
} catch (IOException e) {
System.out.println("读取文件时发生异常:" + e.getMessage());
}
}
}
}
}
}
} else {
System.out.println("源文件夹不存在或不是一个文件夹。");
}
}
}
在上述示例中,我们首先获取指定的源文件夹,然后遍历每个日期文件夹和文件夹中的文件。对于每个文件,我们首先读取其内容,然后通过Socket
类连接到目标服务器,并将文件内容写入到目标服务器指定的文件夹中。
请注意,在实际使用中,您需要根据实际情况进行错误处理和异常处理,以确保文件的读取和写入过程能够正确执行。另外,还需要根据服务器类型和访问协议来确定适当的操作和配置。