2013-05-20 3 views
1

Я зашел в тупик относительно того, как писать атрибуты в форме в текстовый файл в java. Я знаю, что на это много ответов, но я не мог найти решения проблемы, с которой я столкнулся. Хотя в форме есть много атрибутов, когда я пытаюсь записать их в файл, он будет перезаписан. Например: есть 3 атрибута , когда я пытаюсь записать их в файл, третий перезаписывает второй.как писать в текстовый файл без перезаписи?

Вот что я сделал до сих пор:

writer = new PrintWriter(new FileWriter("C:/Documents and Settings/Administrator/Desktop/example1.txt"),true); 
if(specific attr found) 
    writer.println("my data"); 
writer.flush(); 
if(another found) 
    writer.println("my data"); 
writer.flush(); 
if(third attr found) 
    writer.println("my data"); 
writer.flush(); 
writer.close(); 

но не работает.

+2

Постарайтесь избавиться от смыва – Jason

+2

Ваш пример действует и работает. Там должно быть что-то еще, что вы не делитесь с нами. –

+1

Вы установили флаг autoflush для печати на true, вы должны удалить эти флеш-инструкции. Кроме этого, вероятно, проблема с вашим оператором if, который не может найти второй атрибут. – Farlan

ответ

0

Вы можете использовать FileUtils CommonsIO 2.4 API

Пример

package com.doc; 

import java.io.File; 
import java.io.IOException; 

import org.apache.commons.io.FileUtils; 

public class Test { 

    public static void main(String[] args) throws IOException { 

     File file = new File("test.txt"); 
     FileUtils.write(file, "\n my data", true); 
     FileUtils.write(file, "\n my data", true); 
     FileUtils.write(file, "\n my data", true); 

    } 
} 

выход

my data 
my data 
my data 
+0

Спасибо всем ... Его работа. После того, как я удалил свой флеш .. @pavel & @ farlan У меня была проблема с моим заявлением if. Хотя это была глупая ошибка с моей стороны, но в любом случае помощь оценивается :) – user1957902