这是我的作业,但请先阅读我的问题说明。
我必须编写一个Java程序
a。 目录的路径将作为命令行参数传递给程序。然后程序将提示输入文件名并查找具有该名称的所有文件。 如果没有传递参数,程序应该从上一次运行中搜索目录。不要使用任何数据库。
b。 如果用户输入exit / quit / bye,程序将停止执行。
问题描述:
*我的问题是问题说我必须从命令行获取目录名称,如果没有传递,我必须先取入之前输入的目录。但是当我们通过命令行参数时,我们需要运行程序。这意味着每次我必须运行程序来传递命令行参数。 那么如果没有传递参数(如我不能使用数据库那样),我怎么能记住前一个。 *
答案 0 :(得分:2)
您可以将实际目录名的名称存储在一个文件中(当您使用无参数重新运行时,它将是“之前的”目录名称)
Persistance 是关键。您必须持久(存储)应用程序之外的状态,它可以生存。
答案 1 :(得分:1)
我真的不明白“程序应该从之前的运行中搜索目录”是什么意思。所以我将尝试回答两种可能性:
之前从同一会话中运行。 (刚刚开始运行)
为了做到这一点,你应该创建一个存储所有的单例 在ArrayList中运行,并获取最新路径。 Memento模式也可能是另一种解决方案。
以前从相同/不同的会话运行(意味着可能在昨天,或上个月或去年运行),并且计算机可能已在每次运行之间关闭。
为此,我认为您应该使用FileWriter或BufferedWriter编写默认文件的路径。然后创建 FileReader或BufferedReader从此文件中读取以获取最后一个文件 路径正在运行。