EOF не работает в файлах данных для сохранения значения

0

Вопрос

    public static void main(String[] args) throws IOException {
    InputStream istream;        
    int c;
    final int EOF = -1;
    istream = System.in; 
    FileWriter outFile =  new FileWriter("C:/Users/boamb/Documents/NetBeansProjects/DSA_BSE20BFT/src/week7/Data.txt",true);
    BufferedWriter bWriter = new BufferedWriter(outFile);
    System.out.println("Enter fruits to store in data File – Press Ctrl+Z to end ");    
    while ((c = istream.read()) != EOF)
    bWriter.write(c);
    bWriter.close();
    }

Всем привет, я пытаюсь вставить данные в файл через системный вывод в IDE NETBEANS, но проблема в том, что когда я нажимаю CTRL+Z, это не работает, программа все еще работает, и когда я останавливаю ее вручную, в файле не сохраняются данные. Это мой фрагмент кода.

data-files data-structures java netbeans
2021-11-24 06:11:15
1

Лучший ответ

0

На самом деле я не понимаю, в чем причина полагаться на EOF, когда ваша логика говорит "Введите фрукты". Я имею в виду, что вы должны читать строку, а не байт за байтом, и в этом случае терминатором будет также некоторое строковое значение, например "конец" :

public static void main( String[] args ) throws IOException{
    BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
    FileWriter outFile = new FileWriter( "C:/Users/boamb/Documents/NetBeansProjects/DSA_BSE20BFT/src/week7/Data.txt", true );
    try ( BufferedWriter bWriter = new BufferedWriter( outFile ); ){
        String line;
        while( true ){
            System.out.println( "Enter fruits to store in data File – Enter 'end' to end " );
            line = br.readLine();
            if( "end".equals( line ) ){
                break;
            }
            bWriter.write( line );
            bWriter.newLine();
        }
        bWriter.flush();
    }
}
2021-12-01 09:38:51

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................