首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java FileWriter跳过文件

Java FileWriter跳过文件
EN

Stack Overflow用户
提问于 2022-04-13 14:26:43
回答 1查看 29关注 0票数 1

我有一个包含文件的包:"100.txt“、"1000.txt”、"10000.txt“、"100000.txt”、"1000000.txt“。但是当我启动我的程序时,它会跳过100和1000 txt文件。你能告诉我为什么吗?

代码语言:javascript
复制
public void generateData(Path path) throws IOException {
        for (int i = 1; i <= 5; i++){
            for (int j = 100; j <= 1000000; j*=10){
                FileWriter fileWriter = new FileWriter(path.resolve(Integer.toString(i)).resolve(j + ".txt").toFile());
                Random random = new Random();
                for (int k = 0; k < j; k++){
                    int num = random.nextInt(10);
                    fileWriter.write(num);
                    fileWriter.write("\n");
                }
            }
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-13 14:38:32

我运行了你的代码,一切都运行得很好。

所有文件均已打印:

  • 100.txt
  • 1000.txt
  • 10000.txt
  • 100000.txt
  • 1000000.txt

有一件事我注意到,你没有关闭你的FileWriter后,你完成了它。也许这就是问题所在。

这是我运行的完整代码。我确实删除了将文件写入编号目录的操作,因为我的计算机上不存在这些目录。

代码语言:javascript
复制
package forloop;

import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Random;

public class GenerateData {

    public static void main(String[] args) throws IOException {

        Path path = Paths.get("");

        generateData(path);
    }

    public static void generateData(Path path) throws IOException {
        for (int i = 1; i <= 5; i++){
            for (int j = 100; j <= 1000000; j*=10){
                FileWriter fileWriter = new FileWriter(path.resolve(j + ".txt").toFile());
                Random random = new Random();
                for (int k = 0; k < j; k++){
                    int num = random.nextInt(10);
                    fileWriter.write(num);
                    fileWriter.write("\n");
                }
                fileWriter.close();
            }
        }
    }
}

基于安迪的建议,一种使用资源试用的解决方案。

代码语言:javascript
复制
package forloop;

import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Random;

public class GenerateData {

    public static void main(String[] args) throws IOException {

        Path path = Paths.get("");

        generateData(path);
    }

    public static void generateData(Path path) throws IOException {
        for (int i = 1; i <= 5; i++) {
            for (int j = 100; j <= 1000000; j*=10) {
                try (FileWriter fileWriter = new FileWriter(path.resolve(j + ".txt").toFile())) {
                    Random random = new Random();
                    for (int k = 0; k < j; k++){
                        int num = random.nextInt(10);
                        fileWriter.write(num);
                        fileWriter.write("\n");
                    }
                }
            }
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71859187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档