我正在自学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){
,但它继续抛出错误消息。
接下来,我试着看看它是否是扫描仪/字符串之一。我发现具体错误是由Formatter file = new Formatter("C:\\Users\\USERNAME\\Desktop\\MyDesktop\\" +name);
引起的。
如果我删除最后一组\它工作正常但是,它将文件放在错误的位置,如果我把它们放在里面就说错误并且什么都不做。(固定)
编辑我的新问题出在file.format("%s",cont);
行。当我输入一个句子时,它只打印第一个单词。我知道问题出在"%s"
。但是,在阅读有关oracle的信息时,我似乎无法使用.format
来执行此操作。
编辑2 我尝试将file.format("%s", cont);
替换为file.format("%s", "String Test");
。它使文件包含两个单词。但是,这不会让用户设置将要写入的内容。
我该使用什么?
答案 0 :(得分:0)
如果删除最后一组\,它会将文件命名为Desktop name ,因此您需要它们。
尝试记录错误,在聊天中使用e.printStackTrace()
或System.out.println(e.getMessage()
来打印错误