Java Writer 只读文件系统异常

问题描述 投票:0回答:1

我想使用缓冲写入器在我上面 6 个文件夹中写入一个文件,但它说它是一个只读文件系统

public static void writeDataToCSVFile() {
    try(
        BufferedWriter writer = new BufferedWriter(Files.newBufferedWriter(Paths.get("/../../../../../../customers.csv")));
    ) {
        writer.write("Id;Firstname;Lastname;Street;Housenumber;Postalcode;City;Country");
        writer.newLine();
        for(Customer customer: CustomerManagement.customers) {
            writer.write(customer.convertToCSVString());
            writer.newLine();
        }
        writer.flush();
        
    } catch (Exception e) {
        e.printStackTrace();
    }
}
java.nio.file.FileSystemException: /../../../../../../customers.csv: Read-only file system
    at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:100)
    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
    at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:218)
    at java.base/java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:484)
    at java.base/java.nio.file.Files.newOutputStream(Files.java:228)
    at java.base/java.nio.file.Files.newBufferedWriter(Files.java:3008)
    at java.base/java.nio.file.Files.newBufferedWriter(Files.java:3056)
    at de.volkswagen.fakultaet73.shoppingsystem.management.CustomerManagement.writeDataToCSVFile(CustomerManagement.java:128)
    at de.volkswagen.fakultaet73.shoppingsystem.enities.ShoppingSystem.start(ShoppingSystem.java:23)
    at de.volkswagen.fakultaet73.shoppingsystem.main.Main.main(Main.java:21)

当我使用绝对文件路径时,如“/Username/Desktop/test.csv”,它有效。

java
1个回答
1
投票

看起来您正在尝试写入

/
根目录。一般来说,根目录对于普通用户来说是不可写的。

您想在目录路径前加上

.
/../../../../../../
不是有效路径。它基本上意味着
/
根目录之上的 6 个目录。根据定义,根目录之上没有目录。

© www.soinside.com 2019 - 2024. All rights reserved.