바란 사힌 :
나는 파일 이름을 얻기 위해 스캐너 클래스를 사용하고 있습니다. 하지만 내 스캐너들도 나에게 모든 문자열을 요구하지 않습니다. 그것은 단지 (빈 문자열) ""에 입력 한 문자열을 설정합니다. 그럼 파일이 아닌 또 다른 질문은 내가 파일을 작성하는 FileOutputStream에 사용하고있다 exception.Also을 발견 얻을. 하지가 존재하는 경우 파일을 생성해야 아닌가요? 여기에 내가 스캐너를 사용하여 내 코드의 일부입니다.
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();
}
}
내 메뉴 클래스의 전체 편집 :
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 프로그램은 파일에 쓰기 데이터로 이동합니다.
am0awad :
선택의 수 이하를 입력하려면이 시도int user_choice = Integer.parseInt(s.nextLine());