バランサヒン:
私は、ファイル名を取得するにはScannerクラスを使用しています。しかし、私のスキャナのも私に任意の文字列を求めていません。それはちょうど「」(空文字列)に入力した文字列を設定します。それから私は、ファイルが別の質問は、私はファイルを書き込むた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();
}
}
私のMenuクラスのフル編集:
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:
選択肢を入力するには、これを試してみてくださいnubmerint user_choice = Integer.parseInt(s.nextLine());