Java-使用扫描仪在FileWriter中命名文件

如何使用扫描仪命名文件?由于某种原因,Java的FileWriter不会接受预定义的String作为输入。下面的代码简化为我的意思: `

import java.io.*;

public class Example{
    public static void main(String[] arg) {
        String title;
        Scanner input = new Scanner(System.in);

        title = input.next();
        try {
            FileWriter fw = new Filewriter(title);
        } catch (IOException ex) {}
        input.close()
    }
}

我不知道为什么它不起作用。我已经在线检查了其他问题,但似乎没有一个帮助。

编辑:好的,我编辑了IOException,这是从堆栈跟踪中得到的内容;

java.io.FileNotFoundException: entries\awdwad
.txt (The filename,directory name,or volume label syntax is incorrect)
    at java.base/java.io.FileOutputStream.open0(Native Method)
    at java.base/java.io.FileOutputStream.open(FileOutputStream.java:292)
    at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:235)
    at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:156)
    at java.base/java.io.FileWriter.<init>(FileWriter.java:82)
    at main.JournalInput.main(JournalInput.java:26)

对不起,我对此仍然感到困惑。

编辑编辑:我发现了问题。我忘了一个定界符,删除它显然可以解决问题。我也没有将其放在上面的代码中。很抱歉浪费大家的时间。

lxg1201 回答:Java-使用扫描仪在FileWriter中命名文件

扫描程序将文本解析为令牌,x.txt将轻松成为3个令牌。使用next()代替nextLine()。最好是使用扫描仪。

隐藏文件扩展名(.txt,.docx等)时,Windows下的FileNotFoundException也经常发生。

,

主要取决于您对扫描仪的输入,例如,如果您将文件名与/一起传递,则它将不起作用。在三个不同的输入上发布经过测试的相同代码。
1.例子
2. example.txt
3. /example.txt

public class Example {


     public static void main(String[] arg) {
            String title;
            Scanner input = new Scanner(System.in);

            title = input.next();
            try {
                FileWriter fw = new FileWriter(title);
                System.out.print("Working with "+title);

            } catch (IOException ex) {
                System.out.print("Error: with "+ex);
                ex.printStackTrace(System.out);
            }
            input.close();
        }

}

将在前两个输入上工作,但在最后一个输入的情况下会抛出异常。

本文链接:https://www.f2er.com/2892604.html

大家都在问