0

大家好,我正在尝试传入一个字符串参数以将该字符串写入文本文件。但是,我似乎遇到了麻烦。当我在 main 方法中编译它时它工作正常,它会创建一个文件和我写入其中的所有值。但是,当我使用一种方法时。它根本不创建文件,甚至没有我传入的参数。我打算在 servlet 中使用该方法。

下面是我创建的方法。

public class testWriteFile {
    public static void writeToFile (String data) throws Exception {
        Date dateNow = new Date();

        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
        StringBuilder formatDDMMYYYY = new StringBuilder(sdf.format(dateNow));

        File file = new File(formatDDMMYYYY+".txt");

        if(!file.exists()) {
            file.createNewFile();
        }

        FileWriter fileWritter = new FileWriter(file.getName(),true);
        BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
        bufferWritter.write(data);
        bufferWritter.close();

        System.out.println("Done");
    }
}

我可以知道代码有什么问题吗?提前致谢!

4

2 回答 2

0

使用完整路径(“d:/myfolder/a.txt”) - 仍然可以像 windows 一样保持部分动态

File f = new File("D:/myfolder/" + formatDDMMYYYY + ".txt");

或者linux/mac

File f = new File("/myfolder/" + formatDDMMYYYY + ".txt");

确保您对 myfolder 具有写入权限,并将其替换为您拥有的权限,方法是在 linux/unix 上使用 touch 命令,例如终端中的系统:

touch /myfolder/a.txt
ls -l /myfolder/a.txt 

应该显示该文件的当前日期

于 2013-08-18T08:22:37.010 回答
0

最后,似乎在打印 OP 时问题已解决

System.out.println(file.getCanonicalPath());

由于 OP 使用的是 IDE,因此它位于不同的目录中。

于 2013-08-18T06:58:49.690 回答