📜  java 从 csv 中删除列 - Java 代码示例

📅  最后修改于: 2022-03-11 14:52:40.663000             🧑  作者: Mango

代码示例1
package work.basil.example;

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import org.apache.commons.csv.CSVRecord;

import java.io.BufferedReader;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.InvalidPathException;
import java.nio.file.Path;
import java.nio.file.Paths;

public class App
{
    public static void main ( String[] args )
    {
        System.out.println ( "Hello World!" );
        App app = new App ();
        app.demo ();
    }

    private void demo ( )
    {
        try
        {
            // Read CSV file.
            Path pathInput = Paths.get ( "/Users/basilbourque/input.csv" );
            Path pathOutput = Paths.get ( "/Users/basilbourque/output.csv" );
            try (
                    final BufferedReader reader = Files.newBufferedReader ( pathInput , StandardCharsets.UTF_8 ) ;
                    final CSVPrinter printer = CSVFormat.RFC4180.withHeader ( "ID" , "name1" , "name3" ).print ( pathOutput , StandardCharsets.UTF_8 ) ;
            )
            {
                Iterable < CSVRecord > records = CSVFormat.RFC4180.withFirstRecordAsHeader ().parse ( reader );
                // We expect these headers: ID,name1,name2,name3
                for ( CSVRecord record : records )
                {
                    // Read.
                    Integer id = Integer.valueOf ( record.get ( "ID" ) );
                    String name1 = record.get ( "name1" );
                    String name2 = record.get ( "name2" );
                    String name3 = record.get ( "name3" );
                    System.out.println ( "id: " + id + " | name1: " + name1 + " | name2: " + name2 + " | name3: " + name3 );

                    // Write.
                    printer.printRecord ( id , name1 , name3 );
                }
            }
        } catch ( InvalidPathException e )
        {
            e.printStackTrace ();
        } catch ( IOException e )
        {
            e.printStackTrace ();
        }
    }
}