如何在java中的switch语句中显示文本文件?
我试图在switch语句中打开一个文本文件,但收到错误“表达式的非法开始”。我是Java新手,请尽可能简单的解释 这是我的代码,忽略其他开关情况:如何在java中的switch语句中显示文本文件?,java,switch-statement,bufferedreader,Java,Switch Statement,Bufferedreader,我试图在switch语句中打开一个文本文件,但收到错误“表达式的非法开始”。我是Java新手,请尽可能简单的解释 这是我的代码,忽略其他开关情况: import java.util.Scanner; public class journeyPlanner { public static void main (String[] args){ Scanner in = new Scanner(System.in); System.out.println(" -- MAIN MENU
import java.util.Scanner;
public class journeyPlanner {
public static void main (String[] args){
Scanner in = new Scanner(System.in);
System.out.println(" -- MAIN MENU -- \n 1: Display Journeys \n 2: Identify Suitable Journeys \n Q: Quit \n Pick:");
String Choose = in.next();
switch (Choose) {
case "1" : BufferedReader in = new BufferedReader(new FileReader (<"Input.txt">));
break;
case "2" : System.out.println("You answered: " + Choose + ". Please try again.");
break;
case "Q" : System.out.println("You answered: " + Choose + ". That is correct!");
break;
default:
System.out.println("Please select a valid answer choice.");
}
}
import java.util.Scanner;
公共类旅程规划师{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
System.out.println(“--主菜单--\n 1:显示行程\n 2:识别合适的行程\n Q:退出\n选择:”);
字符串Choose=in.next();
开关(选择){
案例“1”:BufferedReader in=new BufferedReader(new FileReader());
打破
案例“2”:System.out.println(“您回答:“+Choose+”。请再试一次”);
打破
案例“Q”:System.out.println(“您回答:“+Choose+”。这是正确的!”);
打破
违约:
System.out.println(“请选择一个有效的答案选项”);
}
}
}哼,您在中有一个重复的变量
,并且您有一个语法错误新文件读取器(“Input.txt”)
我建议您使用一个真正的ide,它可以帮助您解决此类语法错误…让我们在这里详细分析三个错误:
- 文件名周围的
抛出
。修复它们将显示问题2,修复将显示问题3
通过将main
更改为抛出异常(或者更好地捕获异常),可以解决这三个问题:
和将BufferedReader
行更改为:
case "1" : BufferedReader in2 = new BufferedReader(new FileReader ("Input.txt")); break;
最后一条建议:正确缩进代码我认为您的代码有语法错误:
new FileReader (<"Input.txt">)
及
我认为这与“switch/case”语法无关
要在交换机外壳上获得更多“概览”,可以设置大括号:
switch (bla) {
case FOO: {
// [...]
break;
}
}
这对我很有效:
public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
Scanner in = new Scanner(System.in);
System.out.println(" -- MAIN MENU -- \n 1: Display Journeys \n 2: Identify Suitable Journeys \n Q: Quit \n Pick:");
String Choose = in.next();
switch (Choose) {
case "1":
{
// first we'll try to open the file
try {
BufferedReader br = new BufferedReader(new FileReader("Input.txt"));
} catch (FileNotFoundException ex) {
// if the file does not exist, we'll create one
PrintWriter writer = new PrintWriter("Input.txt", "UTF-8");
}
}
break;
当然,我必须添加一些导入(BufferedReader、FileNotFoundException、FileReader、PrintWriter、UnsupportedEncodingException、Scanner)
问题是您已经在(扫描仪)中分配了变量,然后在中创建了BufferReader。
第二个问题是,在不应该使用角括号的地方使用了角括号
您可以跳过try-catch块来检查文件是否存在。希望有帮助。为什么文件名周围有
呢?你有多个编译错误,为什么不下载一个像eclipse这样的IDE呢,它会帮你很多忙…希望jre是1.7或更高版本,否则情况“也会有问题…@PetterFriberg好的,是的,我完全忘记了这一点,因为我主要使用1.8
BufferedReader in
switch (bla) {
case FOO: {
// [...]
break;
}
}
public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
Scanner in = new Scanner(System.in);
System.out.println(" -- MAIN MENU -- \n 1: Display Journeys \n 2: Identify Suitable Journeys \n Q: Quit \n Pick:");
String Choose = in.next();
switch (Choose) {
case "1":
{
// first we'll try to open the file
try {
BufferedReader br = new BufferedReader(new FileReader("Input.txt"));
} catch (FileNotFoundException ex) {
// if the file does not exist, we'll create one
PrintWriter writer = new PrintWriter("Input.txt", "UTF-8");
}
}
break;