Java 使用扫描仪写入文本文件时出现异常错误

Java 使用扫描仪写入文本文件时出现异常错误,java,eclipse,java.util.scanner,Java,Eclipse,Java.util.scanner,我在自学java,我一直在试验扫描仪和编写文本文件。当我使用此代码时,它会抛出一条错误消息 package testPackage; import java.util.Scanner; import java.util.Formatter; public class WriteTest1 { public static void main(String[] args) { try{ String name; String cont;

我在自学java,我一直在试验扫描仪和编写文本文件。当我使用此代码时,它会抛出一条错误消息

    package testPackage;
import java.util.Scanner;
import java.util.Formatter;

public class WriteTest1 {

public static void main(String[] args) {
    try{
        String name; 
        String cont;
        Scanner nameSc = new Scanner(System.in); //Gets the name of the file that is being edited.
        Scanner contSc = new Scanner(System.in); //Gets the content that is being added to the file.
        name = nameSc.next(); //First scanner's input
        cont = contSc.next(); //Second scanner's input
        Formatter file = new Formatter("C:\\Users\\USERNAME\\Desktop\\MyDesktop\\" +name);
        file.format("%s",cont);
        file.close();
    }catch(Exception e){
        System.out.println("Error");
    }
}
}
我已尝试将异常类型更改为
}catch(FileNotFoundException e){
,但它继续抛出错误消息

    package testPackage;
import java.util.Scanner;
import java.util.Formatter;

public class WriteTest1 {

public static void main(String[] args) {
    try{
        String name; 
        String cont;
        Scanner nameSc = new Scanner(System.in); //Gets the name of the file that is being edited.
        Scanner contSc = new Scanner(System.in); //Gets the content that is being added to the file.
        name = nameSc.next(); //First scanner's input
        cont = contSc.next(); //Second scanner's input
        Formatter file = new Formatter("C:\\Users\\USERNAME\\Desktop\\MyDesktop\\" +name);
        file.format("%s",cont);
        file.close();
    }catch(Exception e){
        System.out.println("Error");
    }
}
}
接下来,我试图查看它是否是扫描仪/字符串之一。我发现特定错误是由
格式化程序文件=新格式化程序(“C:\\Users\\USERNAME\\Desktop\\MyDesktop\\\”+name);
引起的。 如果我删除最后一组\它可以正常工作,但它会将文件放在错误的位置,如果我将它们留在其中,则会显示错误,并且不会执行任何操作。(已修复)

编辑我的新问题在
文件.format(“%s”,cont);
行。当我输入一个句子时,它只打印第一个单词。我知道问题在
“%s”
中。但是,在阅读oracle上的信息时,我似乎无法使用
.format
来执行此操作

编辑2我尝试用
file.format(“%s”,“String Test”);
替换
file.format(“%s”,“String Test”);
。结果文件包含了两个单词。但是,用户无法设置要写入的内容


我使用什么?

如果删除最后一组\它将命名文件Desktopname,以便您需要它们


尝试记录错误,在聊天室中使用
e.printStackTrace()
System.out.println(e.getMessage()
)打印错误

为什么您认为同一输入源需要两个
Scanner
实例?在
System.out.println(“错误”)之前添加
e.printStackTrace()
,并发布输出
格式化程序的问题是,我在文件路径中的用户名上留下了一个字符。现在它只打印
文件格式的第一个字(“%s”,cont)
你能发布堆栈跟踪吗?它没有输出任何东西。问题是
扫描仪不接受空格,当一个在输入中时,它会切断之后的所有内容。问题不是我想的那样。我在文件路径中有一个输入错误。