Я хочу добавить строку в Последнюю строку файла, используя Java, но я застреваю, Нужна помощь :)

1

Это мой код:

import java.io.File;    
import java.io.FileWriter;    
import java.io.BufferedWriter;    
import java.io.IOException;    

public class Append    
{    
    public static void main( String[] args )    
    {       
        try{    
            String data = " Thank you very much";    

            File file =new File(" ");    

            //if file doesnt exists, then create it    
            if(!file.exists()){    
                file.createNewFile();    
                System.out.println("New File Created Now");    
            }    

            //true = append file    
                FileWriter fileWritter = new FileWriter(file.getName(),true);        
                BufferedWriter bufferWritter = new BufferedWriter(fileWritter);            
                bufferWritter.write(data);    
                bufferWritter.close();    

            System.out.println("Done");    

        }catch(IOException e){    
            e.printStackTrace();    
        }    
    }    
}    

В вышеприведенном коде я пытаюсь добавить "String data =" Большое спасибо ";" в G://Openone.txt, но его не wokrking правильно, и я не получаю вывод.

  • 0
    Путь к файлу намеренно оставлен пустым? Похоже, это может быть отправной точкой. Когда вы говорите, что это не работает правильно, не могли бы вы уточнить? Это сбой? Файл не создан? Неверное содержимое?
Теги:
file
io

3 ответа

2
Лучший ответ
public static void main( String[] args )    
{       
    try{    
        String data = " Thank you very much";    

        File file =new File(" ");    

        //if file doesnt exists, then create it    
        if(!file.exists()){    
            file.createNewFile();    
            System.out.println("New File Created Now");    
        }    

        //true = append file    
            FileWriter fileWritter = new FileWriter(file,true);        
            BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
            bufferWritter.write(data);
            bufferWritter.close();
            fileWritter.close();

        System.out.println("Done");    

    }catch(Exception e){    
        e.printStackTrace();    
    }    
}  

Используйте файл-объект вместо file.getName() в следующей строке.

FileWriter fileWritter = new FileWriter(file.getName(),true);
  • 0
    Спасибо @mayank Pandya
1

Если вы используете Java 7+, вы можете использовать:

Files.write(Paths.get("G:\\Openone.txt"), "Thank you very much".getBytes(), StandardOpenOption.APPEND, StandardOpenOption.CREATE);

BTW, я рекомендую вам реорганизовать ваш код, чтобы правильно управлять исключением с помощью блока finally, потому что если исключение выбрано в строке записи, метод close не будет вызываться.

1
        File file =new File(" ");    

должен стать

        File file = new File("G:\\Openone.txt");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню