So aktualisieren Sie einen Datensatz in der csv-Datei mithilfe von Apache commons csv-api in java?

Ich habe eine csv-Datei geschrieben, mit Apache commons API und ich kann auch die Datei Lesen, aber ich bin nicht in der Lage zu wissen, wie man einen Datensatz Bearbeiten den Wert in der csv-Datei mithilfe von Apache commons API, benötigen Sie Hilfe auf dieser.

InformationsquelleAutor mannedear | 2017-12-07



2 Replies
  1. 4

    Habe ich versucht den folgenden code und es funktionierte genau so, wie ich es erwartet habe.

    public static void updateCsvFile(File f) throws Exception {
            CSVParser parser = new CSVParser(new FileReader(f), CSVFormat.DEFAULT);
            List<CSVRecord> list = parser.getRecords();
            String edited = f.getAbsolutePath();
    
            f.delete();
            CSVPrinter printer = new CSVPrinter(new FileWriter(edited), CSVFormat.DEFAULT.withRecordSeparator(NEW_LINE_SEPARATOR));
            for (CSVRecord record : list) {
                String[] s = toArray(record);
    
                if(s[0].equalsIgnoreCase("Actual Text")){
                    s[0] = "Replacement Text";
                }
                print(printer, s);
            }
            parser.close();
            printer.close();
    
            System.out.println("CSV file was updated successfully !!!");
        }
    
    
     public static String[] toArray(CSVRecord rec) {
                String[] arr = new String[rec.size()];
                int i = 0;
                for (String str : rec) {
                    arr[i++] = str;
                }
                return arr;
            }
    
    
        public static void print(CSVPrinter printer, String[] s) throws Exception {
            for (String val : s) {
                printer.print(val != null ? String.valueOf(val) : "");
            }
            printer.println();
        }
  2. 1

    Den Apache-CSV-Schnittstelle unterstützt nur das Lesen und schreiben ausschließlich, können Sie keine update-records mit den mitgelieferten API.

    Also beste Möglichkeit ist wohl die Datei zu Lesen, in den Speicher, mache die änderungen und schreiben Sie es erneut.

    Wenn die Größe der Datei ist größer als der verfügbare Arbeitsspeicher müssen Sie möglicherweise einige streaming-Ansatz, liest, zeichnet und schreibt Ihnen vor der Lektüre des nächsten. Sie schreiben müssen, eine separate Datei-in diesem Fall natürlich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.