通过接受字符串参数的方法写入文本文件

时间:2013-08-18 06:25:38

标签: java

大家好,我试图传入一个字符串参数将该字符串写入文本文件。 但是,我似乎遇到了麻烦。当我在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");
    }
}

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

2 个答案:

答案 0 :(得分:0)

最后,看来这个问题在OP打印时解决了

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

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

答案 1 :(得分: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 

应显示该文件的当前日期