扫描仪有问题 class
Having trouble with Scanner class
我正在使用扫描仪 class 获取文件名。但是我的 Scanner 甚至没有问我任何字符串。它只是将输入的字符串设置为“”(空字符串)。然后我得到文件未找到 exception.Also 另一个问题是,我正在使用 FileOutputStream 写入文件。如果不存在,是否应该创建文件?这是我使用扫描仪的部分代码。
else if(user_choice == 3){
System.out.println("kaydedilecek dosyanın ismini giriniz : ");
String file_name = s.nextLine();
IOdata iod = new IOdata(data);
iod.save_data(file_name);
下面的代码是关于 io.
public void save_data(String file_name) throws IOException {
try {
FileOutputStream fos = new FileOutputStream(file_name);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(data);
oos.close();
}catch (FileNotFoundException e){
file_name = "default";
FileOutputStream fos = new FileOutputStream(file_name);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(data);
oos.close();
}
}
编辑我的全部菜单class:
import java.io.IOException;
import java.util.Scanner;
public class Menu {
public Menu() throws IOException {
Scanner s = new Scanner(System.in);
Data data = new Data();
while(true){
System.out.println("1-data oluştur");
System.out.println("2-datayı yükle");
System.out.println("3-datayı kaydet");
System.out.println("4-çıkış");
System.out.println("5-yazdır");
int user_choice = s.nextInt();
if(user_choice == 4) {
break;
}else if(user_choice == 1){
DataManupilator dm = new DataManupilator(data);
System.out.println("datanın uzunluğunu giriniz : ");
int length = s.nextInt();
data = dm.generate_data(length);
}else if(user_choice == 5){
data.print_items();
}else if(user_choice == 3){
System.out.println("kaydedilecek dosyanın ismini giriniz : ");
String file_name = s.nextLine();
IOdata iod = new IOdata(data);
iod.save_data(file_name);
}else if(user_choice == 2){
System.out.println("datanın bulunduğu dosyanın ismini giriniz : ");
String file_name = s.nextLine();
IOdata iod = new IOdata(data);
iod.save_data(file_name);
}
}
}
}
我的代码中有一些土耳其语字符串,让我解释一下。如果用户选择 3 程序将数据写入文件。
试试这个输入选择号码int user_choice = Integer.parseInt(s.nextLine());
我正在使用扫描仪 class 获取文件名。但是我的 Scanner 甚至没有问我任何字符串。它只是将输入的字符串设置为“”(空字符串)。然后我得到文件未找到 exception.Also 另一个问题是,我正在使用 FileOutputStream 写入文件。如果不存在,是否应该创建文件?这是我使用扫描仪的部分代码。
else if(user_choice == 3){
System.out.println("kaydedilecek dosyanın ismini giriniz : ");
String file_name = s.nextLine();
IOdata iod = new IOdata(data);
iod.save_data(file_name);
下面的代码是关于 io.
public void save_data(String file_name) throws IOException {
try {
FileOutputStream fos = new FileOutputStream(file_name);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(data);
oos.close();
}catch (FileNotFoundException e){
file_name = "default";
FileOutputStream fos = new FileOutputStream(file_name);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(data);
oos.close();
}
}
编辑我的全部菜单class:
import java.io.IOException;
import java.util.Scanner;
public class Menu {
public Menu() throws IOException {
Scanner s = new Scanner(System.in);
Data data = new Data();
while(true){
System.out.println("1-data oluştur");
System.out.println("2-datayı yükle");
System.out.println("3-datayı kaydet");
System.out.println("4-çıkış");
System.out.println("5-yazdır");
int user_choice = s.nextInt();
if(user_choice == 4) {
break;
}else if(user_choice == 1){
DataManupilator dm = new DataManupilator(data);
System.out.println("datanın uzunluğunu giriniz : ");
int length = s.nextInt();
data = dm.generate_data(length);
}else if(user_choice == 5){
data.print_items();
}else if(user_choice == 3){
System.out.println("kaydedilecek dosyanın ismini giriniz : ");
String file_name = s.nextLine();
IOdata iod = new IOdata(data);
iod.save_data(file_name);
}else if(user_choice == 2){
System.out.println("datanın bulunduğu dosyanın ismini giriniz : ");
String file_name = s.nextLine();
IOdata iod = new IOdata(data);
iod.save_data(file_name);
}
}
}
}
我的代码中有一些土耳其语字符串,让我解释一下。如果用户选择 3 程序将数据写入文件。
试试这个输入选择号码int user_choice = Integer.parseInt(s.nextLine());