所以我试图创建一个程序,以First和Last Name的形式接收输入,然后将其打印到Output.txt文件。 我对编程很陌生,我认为我正在努力。
我只是在程序的最后一部分出现错误。
PrintInitials.java:21: error: <identifier> expected
} output.close();
^
1 error
这是我的代码
import java.util.Scanner;
import java.io.PrintWriter;
import java.io.Writer;
import java.io.*;
public class PrintInitials
{
public static void main(String[] args)
{
Scanner stdIn = new Scanner(System.in);
String first; // first name
String last; // last name
System.out.print("Enter your first and last name separated by a space: ");
first = stdIn.next();
last = stdIn.next();
File file = new File("Output.txt");
FileWriter writer = new FileWriter(file, true);
PrintWriter output = new PrintWriter(writer);
output.print("Your initials are " + first.charAt(0) + last.charAt(0) + ".");
} output.close();
}
答案 0 :(得分:1)
这样做:
Scanner stdIn = new Scanner(System.in);
System.out.print("Enter your first and last name separated by a space: ");
String first = stdIn.next(); // first name
String last = stdIn.next(); // last name
stdIn.close();
try (FileWriter writer = new FileWriter(new File("Output.txt"), true); // autocloseable
PrintWriter output = new PrintWriter(writer)) { // autocloseable
output.print("Your initials are " + first.charAt(0) + last.charAt(0) + ".");
} catch (IOException e) {
e.printStackTrace();
}
作家将自动关闭。
答案 1 :(得分:0)
问题是在关闭流之前,您正在关闭方法体。所以&#39; output.close();&#39;在方法之外并进入课堂体内。
您的新代码应如下所示:
import java.util.Scanner;
import java.io.PrintWriter;
import java.io.Writer;
import java.io.*;
public class PrintInitials{
public static void main(String[] args){
try{
Scanner stdIn = new Scanner(System.in);
String first; // first name
String last; // last name
System.out.print("Enter your first and last name separated by a space: ");
first = stdIn.next();
last = stdIn.next();
File file = new File("Output.txt");
FileWriter writer = new FileWriter(file, true);
PrintWriter output = new PrintWriter(writer);
output.print("Your initials are " + first.charAt(0) + last.charAt(0) + ".");
output.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
如果您还没有,请查看Java Basic Syntax 和PrintWriter的文档来检查什么方法抛出什么异常,这样你就可以捕获它们并像上面那样处理它们,或者只是传递它们。
此外,使用诸如eclipse之类的IDE会在编码时实时显示所有语法错误,因此您不必每次都编译以检查语法是否正确。此外,大多数IDE通常都会出现针对特定错误的过度解决方案。除此之外,它会警告你什么方法抛出什么异常,所以你可以抓住它们。
答案 2 :(得分:-2)
试试这个
BufferedWriter br= new BufferedWriter(new FileWriter(file)){
br.write(first + " " + last);
}