【问题标题】:Save input to a file将输入保存到文件
【发布时间】:2013-04-23 14:18:15
【问题描述】:

我正在构建一个命令外壳,在这个命令外壳中,我想将我写入的每个命令保存到一个文件中。

我读过这样的命令:

    BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
    commandLine = console.readLine();

我这样写文件:

    public static void fileWriter(String e){
    try{
        BufferedWriter bw = new BufferedWriter(new FileWriter("errorLog.txt"));
            bw.write(e);
            bw.flush();
            bw.close();
    }
    catch(IOException ex){
        System.out.println(ex);
    }        
}

问题是,每个命令都会覆盖最后一个命令,所以我无法保存在命令 shell 会话期间编写的每个命令。我需要的是我编写的所有命令的列表。

我已经用谷歌搜索了大约 2 个小时,但我找不到任何东西。请帮忙。

【问题讨论】:

    标签: java file io command


    【解决方案1】:

    我会将每个命令保存在一个全局数组中并向其中添加每个新命令,然后将数组中的每个值写入您的文件。 或者读取您的文件,添加您的新值,然后将所有内容再次写入文件

    【讨论】:

    • 是的,考虑过这一点,但认为可能有更好的方法。但是现在累了,会试试这个:)
    【解决方案2】:

    使用

    BufferedWriter bw = new BufferedWriter(new FileWriter("errorLog.txt",true));
    

    true 告诉 FileWriter 追加数据而不是覆盖。请参阅文档。

    public FileWriter(String fileName,boolean append) throws IOException
    
    Constructs a FileWriter object given a file name with a boolean 
    indicating whether or not to append the data written. 
    

    【讨论】:

    • 我一直在寻找类似的东西,但这只是给我一个错误no suitable constructor found 编辑:仍然习惯在记事本中编码:P 这种工作,我希望文件在我重置时再次启动命令外壳
    • 您能否检查一下您的语法是否与我上面的语法完全匹配?
    • 我在你写这篇文章之前就编辑好了^^我的语法错误,我错过了一个“)”
    • 好的,很高兴它对你有用。请“接受”答案! :)
    • 你能告诉我如何在启动时重置文件吗?忘了在我的问题中写这个
    猜你喜欢
    • 2015-11-02
    • 1970-01-01
    • 2019-02-27
    • 2015-01-28
    • 2013-12-24
    • 2011-02-01
    • 2016-12-22
    • 2011-05-12
    • 2016-12-31
    相关资源
    最近更新 更多