Java 如何获取多个文件

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

我有很多标记为不同年份的txt文件,例如1900.txt 1901.txt…2013.txt。我的代码需要一年的时间才能进入命令行和.txt版本。问题是,我正在试图获取在命令行中输入的一年中十年的所有文件。例如,如果我把1986放在命令行中,我想让它得到那十年的所有文件,1980.txt,1981.txt。。。1989.txt。但我不知道怎样才能得到它们

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>fileMap=newhashmap>(); 对于(文件txtFile:File.listFiles()) { if(txtFile.isDirectory()) 继续; ListfileList=fileMap.get(txtFile.getName().substring(0,txtFile.getName().length()-5)); if(fileList==null) fileList=newarraylist(); fileList.add(txtFile); } //写入逻辑以获取年份作为输入 字符串输入=“1986”; Listfiles=fileMap.get(input.substring(0,input.length()-1));
}
您的数据文件设置可能很脆弱,甚至可能很危险,您的问题听起来可能实际上是一个问题,您会问“如何修复此代码”当真正的解决方案是使用完全不同的方法时。为什么所有的文件?为什么不是一个或两个数据文件,您可以根据需要进行更改?只是一点吹毛求疵:1986年十年的第一年是1981年,而不是1980年。这仍然属于之前的十年。十年从NNN1的1月1日开始。这是因为没有“零年”.第一年是1CE,前一年是1CE。你从哪里得到bringFile?你得写那个;-)