import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
 
public class PathTraversal {
    public static void main(String[] args) {
        // 假设用户输入的路径
        String userInput = "../secret-data.txt";
        File inputFile = new File(userInput);
 
        try {
            // 确保文件存在
            if (inputFile.exists()) {
                // 读取文件内容
                String content = new String(Files.readAllBytes(inputFile.toPath()));
                System.out.println("文件内容: " + content);
 
                // 假设有一个新的文件路径
                Path tempFilePath = Paths.get("output.txt");
 
                // 写入新文件
                Files.write(tempFilePath, content.getBytes());
 
                System.out.println("文件复制成功.");
            } else {
                System.out.println("文件不存在.");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}这段代码使用了java.nio.file包中的Files和Paths类来处理文件路径。它首先检查文件是否存在,然后读取文件内容,并尝试将内容写入一个新的文件。这个例子展示了如何处理用户输入的文件路径,避免了路径遍历攻击。