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 № 1Wł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:
- Przeczytaj zawartość pliku jako całość, w a
String
- Usuń zawartość, którą chcesz usunąć z określonego
String
- 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.