2014-12-04 3 views
1

это мой кодмне нужно написать файл с помощью Java

/* 
 
* To change this license header, choose License Headers in Project Properties. 
 
* To change this template file, choose Tools | Templates 
 
* and open the template in the editor. 
 
*/ 
 

 
package namereader; 
 
import java.util.*; 
 
import java.io.*; 
 
/** 
 
* 
 
* @author jpowell1225 
 
*/ 
 
public class NameReader { 
 

 
    /** 
 
    * @param args the command line arguments 
 
    */ 
 
    public static void main(String[] args) throws IOException{ 
 
     // TODO code application logic here 
 
     boolean onoff = true; 
 
     int count = 0; 
 
     int count2 = 0; 
 
     String first = null; 
 
     FileWriter fw = new FileWriter("txt",true); 
 
     
 
     String last = null; 
 
     
 
     Scanner scan = new Scanner(System.in); 
 
     scan.useDelimiter(" "); 
 
     //scan.useDelimiter(); 
 
     while(onoff){ 
 
      first = scan.nextLine(); 
 
      
 
      if(first.equals("quit")){ 
 
        break; 
 
       } 
 
      
 
     
 
       
 
       fw.write(first); 
 
       FileReader fr = new FileReader("txt"); 
 
       Scanner src = new Scanner(fr); 
 
       count = first.lastIndexOf(" "); 
 
       count2 =first.indexOf(" ", 2); 
 
       System.out.println("Your name is: " + first.substring(count) + " " + first.substring(count2, count2+2) + ". " + first.substring(0, count2)); 
 
    
 
     } 
 
     fw.close(); 
 
     scan.close(); 
 
     
 
      
 
    } 
 
    
 
}

Хотя это правильно выход вводится имя (переключение его с первого Ближним Последней Last First отчества), и он правильно создает файл с именем «txt», всякий раз, когда я открываю файл, он пуст.

Мне нужно добавить несколько входов в файл "txt". ТИА

ответ

0

Вы забыли автоматически flush() выходной поток, как это

fw.flush();//flush it before close it. 
fw.close(); 

Также вы можете использовать try(<<Closable>>){} и пусть Java закрывает (FileWriter) его.

EDIT
try(<<closable_0>>;<<closable_1>>;...){} новая схема, так как java1.7 и используется для пусть JVM автоматически закрывает closable объект только после того, как блок. в вашем коде это может быть так.

try(Scanner scan = new Scanner(System.in);FileWriter fw = new FileWriter("txt",true);){ 
//using the objects 
}//jre will closes both :scan and :fw objects automatically 
+0

использованием fw.flush() ничего не делает для меня, но не могли бы вы показать мне, как отформатировать свой код в пути, где я могу использовать попробовать {} (Я Newb на это: P) –

+0

Отредактируйте @JacobPowell –

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