Java 使用增量整数命名fileOutputStream

Java 使用增量整数命名fileOutputStream,java,file,Java,File,我试图从一个文件夹中读取文件,然后用原始文件名和递增整数存储到另一个文件夹中,但没有成功: File f = new File(C:/FILES); String listfiles[] = f.list(); for (int i = 0; i < listfiles.length; i++) { int count = 0; FileInputStream fstemp = new FileInputStream("C:/FILES/" + listfiles[i]);

我试图从一个文件夹中读取文件,然后用原始文件名和递增整数存储到另一个文件夹中,但没有成功:

File f = new File(C:/FILES);
String listfiles[] = f.list();
for (int i = 0; i < listfiles.length; i++) {
    int count = 0;
    FileInputStream fstemp = new FileInputStream("C:/FILES/" + listfiles[i]);
    FileOutputStream fos = new FileOutputStream("C:/TEMPFILES/" +count + "_"+ listfiles[i]);
    BufferedReader br = new BufferedReader(new InputStreamReader(fstemp));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
    String strLine;
    ..................
    count++;
}
我的所有文件都将以0整数移动到临时文件夹。我需要1,2,3,4。。。 我遗漏了什么?

您可能希望在循环的每一圈都不重新初始化计数为0

你基本上有:

for (<conditions>) {
  int count = 0; // whoops, set to 0 for every iteration!!

   // do stuff

   count++;
}
您可能希望在循环每转一圈时不重新初始化计数为0

你基本上有:

for (<conditions>) {
  int count = 0; // whoops, set to 0 for every iteration!!

   // do stuff

   count++;
}
每次新循环迭代开始时,变量计数都设置为0

只需将其声明放在前一行:

int count = 0; //
for (int i = 0; i < listfiles.length; i++) {
每次新循环迭代开始时,变量计数都设置为0

只需将其声明放在前一行:

int count = 0; //
for (int i = 0; i < listfiles.length; i++) {

啊,这是一个非常详细的例子,我很欣赏。@Stanley:很高兴你这么做了。Sad Andremoniy可能只快了几秒钟,但对于一个全面的答案:+2。下次会是你:@Stanley:不,那很公平。这是游戏规则:啊,这是一个非常复杂的例子,我很欣赏。@Stanley:很高兴你这么做了。Sad Andremoniy可能只快了几秒钟,但对于一个全面的答案:+2。下次会是你:@Stanley:不,那很公平。这是游戏规则: