1

我正在尝试制作一个应用程序来创建 Google Authenticator 密钥,以及验证 OTP。我正在将我所有的密码写入标题为伴随它们的名称的单个文件中。

首先,我正在使用这个库。 https://github.com/aerogear/aerogear-otp-java

这是我的代码:

public void createUserFile(String name) throws IOException
{
    File file = new File("users\\" + name + ".txt");
    file.createNewFile();
}

public void generateUserKey(String name)
{
    try 
    {
        File file = new File("users\\" + name + ".txt");
        FileWriter fw = new FileWriter(file);
        BufferedWriter out = new BufferedWriter(fw);
        String s = Base32.random();
        out.write(s);
        out.close();
    } 
    catch (IOException e) 
    {
        e.printStackTrace();
    }
}

如果我将值更改为s“Hello”之类的,我很好。但是,它不会写入该随机字符串。这就是我需要帮助的地方。我已经修补和搜索了几个小时的答案,但我什么也没找到。

4

1 回答 1

1

我不相信你需要createUserFile,而且不清楚你一定知道“users/”文件夹(相对路径)在哪里。我建议您使用System.getProperty(String)获取user.home用户主目录)。

我还建议您使用try-with-resourcesStatementPrintStream. 就像是

public void generateUserKey(String name) {
    File file = new File(System.getProperty("user.home"), //
            String.format("%s.txt", name));
    try (PrintStream ps = new PrintStream(file)) {
        ps.print(Base32.random());
    } catch (IOException e) {
        e.printStackTrace();
    }
}
于 2015-10-24T02:05:24.247 回答