Ayant des problèmes avec la classe Scanner

Baran Şahin:

J'utilise la classe du scanner pour obtenir un nom de fichier. Mais mon scanner s est même pas me poser de chaîne. Il situé juste à la chaîne saisie à « » (chaîne vide). Puis-je obtenir le fichier non trouvé exception.Also autre question est, j'utilise FileOutputStream pour écrire un fichier. Ne devrait créer le fichier si existe pas? Voici une partie de mon code où j'utiliser le scanner.

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);

et le code ci-dessous est d'environ 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();
        }
    }

Modifier plein de ma classe 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);
            }
        }
    }
}

Il y a quelques chaînes turques dans mon code alors laissez-moi vous expliquer. Si l'utilisateur choisit 3 programme passe à des données d'écriture dans un fichier.

am0awad:

Essayez ceci pour entrer dans le choix nubmerint user_choice = Integer.parseInt(s.nextLine());

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=345120&siteId=1
conseillé
Classement