/ / Usuń zawartość pliku csv w Javie - java, csv

Usuń zawartość pliku CSV w Javie - java, csv

Każdego dnia aktualizuję plik csv za pomocą FileWriter. Kiedy wkraczamy w nowy miesiąc, muszę usunąć dane z poprzedniego miesiąca. Mój poniższy kod aktualizuje dane tylko w pliku csv, więc proszę o pomoc w usuwaniu danych z poprzedniego miesiąca.

Przynajmniej muszę wiedzieć, jak usunąć dane w pliku csv za pomocą FileWriter, dzięki czemu mogę zarządzać kodowaniem w celu usunięcia danych z poprzedniego miesiąca.

        private static void eventsUpdate(HttpServletRequest request,
HttpServletResponse response)  {
String date=request.getParameter("date");   //getting from jsp page
String event=request.getParameter("event"); //getting from jsp page


File file = new File( "D:///events/events.csv");
if ( !file.exists() )
file.createNewFile();

FileWriter fw = new FileWriter(file,true);
BufferedWriter writer = new BufferedWriter( fw );
writer.write(date);
writer.write(",");
writer.write(event);

System.out.println("writing into excel");
writer.newLine();
writer.close();
fw.close();

}

Odpowiedzi:

4 dla odpowiedzi № 1

Właściwie kiedy używasz true argument w twoim FileWriter tworzenie instancji, tworzysz obiekt piszący pliki w dodać tryb.

FileWriter fw = new FileWriter(file,false);

Jeśli nie używasz true opcja, plik zostanie nadpisany przez nową zawartość. Dlatego sugerowałbym skorzystanie z tego planu:

  1. Przeczytaj zawartość pliku jako całość, w a String
  2. Usuń zawartość, którą chcesz usunąć z określonego String
  3. Nadpisz plik treść wykorzystująca nową zawartość w konkretnym String

Mam nadzieję, że pomogłem!


0 dla odpowiedzi nr 2

Proponuję ci, aby zamiast usuwania plików utworzyć unikalny plik nazwy, taki jak march2014, styczeń2013. Co miesiąc musisz czytać plik docelowy, który jest nazywany przez strategię miesiąca.

Na przykład:

Po osiągnięciu kwietnia 2014 utwórz nowy plik kwietnia 2014 itd. I przeczytaj go w tym miesiącu.