2015-09-02 3 views
1

У меня есть данные в файле input.txt. Когда я запускаю программу, он создает файл с именем output.txt, но не содержит данных. Как я могу получить данные для отображения в output.txt?Запись данных в выходной файл

import java.io.*; 
import java.util.*; 

public class DisplayFirstLetter { 

    public static void main(String args[]) {   
     try { 
      File input = new File("input.txt"); 
      File output = new File("output.txt"); 
      Scanner sc = new Scanner(input); 
      PrintWriter printer = new PrintWriter(output); 
      while(sc.hasNextLine()) { 
       String s = sc.nextLine(); 
       printer.write(s); 
      } 
     } 
     catch(FileNotFoundException e) { 
      System.err.println("File not found. Please scan in new file."); 
     } 
    } 
} 
+2

Данные не часто являются признаками не * закрытия * 'Writer' ..... Yup. Нет 'close()'. ** Всегда ** закройте свои ресурсы, включая «Сканер». – Andreas

+0

закрыть принтер и сканер после всех операций над ними. – itwasntme

+0

Спасибо @Andreas данные теперь находятся в файле output.txt, теперь, чтобы выяснить, как получить первую букву каждой строки, чтобы показывать только – ThePyroMark

ответ

1

Вам необходимо закрыть PrinterWriter для записи файла output.txt. Рекомендуемый способ определения сканера и принтера: попробуйте с ресурсами. Сканер и принтер будут автоматически закрыты во всех случаях, включая случай, когда генерируется исключение.

import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.PrintWriter; 
import java.util.Scanner; 

public class DisplayFirstLetter { 

    public static void main(String args[]) { 
     File input = new File("input.txt"); 
     File output = new File("output.txt"); 

     try (Scanner sc = new Scanner(input); 
      PrintWriter printer = new PrintWriter(output)) { 

      while (sc.hasNextLine()) { 
       String s = sc.nextLine(); 
       printer.write(s); 
      } 
     } catch (FileNotFoundException e) { 
      System.err.println("File not found. Please scan in new file."); 
     } 
    } 
} 
+0

Большое вам спасибо, я ценю это – ThePyroMark

+0

любая идея, как это сделать что он отобразит первую букву на каждой линии из input.txt в output.txt? – ThePyroMark

+0

's.substring (0, 1);' вернет строку только с первой буквой. Вам также понадобится напечатать новый символ строки '\ n' –

Смежные вопросы