2015-08-30 6 views
1

Я делаю простую программу, которая помещает данные в файл, используя FileWriter.Запись данных в файл с использованием FIlewriter

Но я столкнулся с проблемой. Мой код создает fie, но не помещает данные в файл.

import java.io.*; 

class Temp 
{ 
    public static void main(String args[])throws Exception 
    { 
     FileWriter fw=new FileWriter("ma.txt"); 
     BufferedWriter bw=new BufferedWriter(fw); 
     String str="dslkm dsk"; 
     bw.write(str); 
    } 
} 

Может ли кто-нибудь сказать мне, почему это происходит?

ответ

2

Вам необходимо заподлицо и закрыть писателя.

bw.flush(); 
bw.close(); 

Даже закрытие писателя должно быть достаточно, так как оно автоматически сбрасывается перед закрытием.

0

Ваш код должен быть:

public static void main(String args[])throws Exception 
    { 
     FileWriter fw=new FileWriter("ma.txt"); 
     BufferedWriter bw=new BufferedWriter(fw); 
     String str="dslkm dsk"; 
     bw.write(str); 
     bw.flush(); 
     bw.close(); 
    } 
+0

ой, я видел два ответа только сейчас. Я немного опоздал, не освежая вопроса. –

0

Файл писатель всегда должен быть закрыт или промыть. В противном случае нет никакой гарантии на Написать bytes/characters в нем будет написано в вашем file.And, лучше использовать fileWriter с try-catch-finally блоком -

try { 
     FileWriter fw=new FileWriter("ma.txt"); 
     BufferedWriter bw=new BufferedWriter(fw); 
     String str="dslkm dsk"; 
     bw.write(str); 

    } catch (IOException ex){ 
     System.err.println("Couldn't log this: "+s); 
    }finally{ 
     bw.close(); 
    } 
Смежные вопросы