Java 如何获取多个文件
我有很多标记为不同年份的txt文件,例如1900.txt 1901.txt…2013.txt。我的代码需要一年的时间才能进入命令行和.txt版本。问题是,我正在试图获取在命令行中输入的一年中十年的所有文件。例如,如果我把1986放在命令行中,我想让它得到那十年的所有文件,1980.txt,1981.txt。。。1989.txt。但我不知道怎样才能得到它们Java 如何获取多个文件,java,command-line,args,Java,Command Line,Args,我有很多标记为不同年份的txt文件,例如1900.txt 1901.txt…2013.txt。我的代码需要一年的时间才能进入命令行和.txt版本。问题是,我正在试图获取在命令行中输入的一年中十年的所有文件。例如,如果我把1986放在命令行中,我想让它得到那十年的所有文件,1980.txt,1981.txt。。。1989.txt。但我不知道怎样才能得到它们 public static void main(String args[]) { String line = ""; // strin
public static void main(String args[])
{
String line = ""; // string var to hold entire line
if (args.length < 1)
{
System.out.println("\nYou forgot to put a Year on the command line.");
System.out.println();
System.exit(1);
};
String inFile = args[0]; // file name off command line
String year = inFile;
publicstaticvoidmain(字符串参数[])
{
String line=”“;//用于保存整行的字符串变量
如果(参数长度<1)
{
System.out.println(“\n您忘了在命令行上写一年。”);
System.out.println();
系统出口(1);
};
字符串infle=args[0];//关闭命令行的文件名
字符串年份=填充;
我建议在除以10时得到余数。使用(%)而不是(/)。对于1980-1989年,这将返回198,因此只需乘以10即可。考虑以下情况:
int year = Integer.valueOf(line); // This assumes valid input of course...
int beginningOfDecade = year - (year % 10) // 1986 - 6 = 1980
for(int i = beginningOfDecade /*1980*/; i < beginningOfDecade + 10 /*1990*/; i++){
bringFile(i);
}
int year=Integer.valueOf(line);//这当然假设输入有效。。。
int beginingofdecade=year-(year%10)//1986-6=1980
对于(int i=beginingofdecade/*1980*/;i
还需要考虑当一年已经在十年开始时发生的事情(即1980)。 你想要上一个十年(1970-1980)还是现在的十年(1980-1990)
事实上,您可以使用Real疑论者的评论正确地定义它。Giver目录路径从目录中获取文件列表
此处,子字符串()中使用的5,如,1986.txt最后5个字母“6.txt”需要切掉 公共静态最终字符串directoryPath=“directoryPath”; 公共静态void main(字符串[]args) { File File=新文件(directoryPath); 如果(!file.isDirectory()) 返回; Map
}您的数据文件设置可能很脆弱,甚至可能很危险,您的问题听起来可能实际上是一个问题,您会问“如何修复此代码”当真正的解决方案是使用完全不同的方法时。为什么所有的文件?为什么不是一个或两个数据文件,您可以根据需要进行更改?只是一点吹毛求疵:1986年十年的第一年是1981年,而不是1980年。这仍然属于之前的十年。十年从NNN1的1月1日开始。这是因为没有“零年”.第一年是1CE,前一年是1CE。你从哪里得到bringFile?你得写那个;-)