为了账号安全,请及时绑定邮箱和手机立即绑定

使用 for 循环和 PrintWriter,如何创建多个随机命名的文件

使用 for 循环和 PrintWriter,如何创建多个随机命名的文件

喵喵时光机 2023-09-13 10:14:56
基本上问题是在编译运行并输入输入之后。仅创建一个文件。一切正常,除了当我输入大于一的数字时。输入大于 1 的数字应该允许我拥有多个文件,每个文件都根据我的理解生成随机名称,对吧?相反,它选择只创建一个具有随机名称的文件,并正常执行所有操作,除了创建我告诉它的几个额外文件。这是为了个人娱乐,我使用 notepad++ 创建它,然后在命令提示符中使用 javac 和 java 编译并运行它。我基本上是用几天前在课堂上学到的东西来创建这个,加上我必须研究的很多额外的东西,但我真的想知道如何做到这一点,但在for 循环,这就是我想要的方式。import java.util.Scanner;import java.io.PrintWriter;import java.io.FileNotFoundException;public class rangen {    static String getnumlet(int n) {        String numlet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr" +            "stuvwxyz0123456789";        StringBuilder sb = new StringBuilder(n);        for (int i = 0 ; i < n ; i++) {            int index = (int)(numlet.length() * Math.random());            sb.append(numlet.charAt(index));        }        return sb.toString();    }    public static void main(String[] args) {        final int length = 10;        int amount = 0;        String printername = (rangen.getnumlet(length) + ".java");        String name = (printername.substring(0 ,            printername.indexOf('.')).trim());        Scanner input = new Scanner(System.in);        PrintWriter tofile = null;        System.out.print("Enter the amount of files you want to create: ");        amount = input.nextInt();        for (int i = 1 ; i <= amount ; i++) {            try {                tofile = new PrintWriter(printername);                tofile.print("// Creator: Unknown...\n");                tofile.print("// Date Created: 9-28-2019\n");                tofile.print("// Last Modified: 9-28-2019\n");                tofile.print("// Description: This file was \n" + 假设您在控制台中输入了值 3。然后我希望它创建三个单独的文件,每个文件中都有我告诉它写入文件的代码。不应出现任何错误消息,但只为我创建了一个文件,而不是 3 个。
查看完整描述

1 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

您需要在for循环的每次迭代中生成一个新的随机文件名。正如所写的,您的程序生成一个随机文件名,并在每次迭代中使用相同的名称。


for (int i = 1 ; i <= amount ; i++) {

    String printername = (rangen.getnumlet(length) + ".java");

    String name = printername.substring(0, printername.indexOf('.')).trim();


    try {

        tofile = new PrintWriter(printername);

        ...

    }

}


查看完整回答
反对 回复 2023-09-13
  • 1 回答
  • 0 关注
  • 60 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信