首页 > 解决方案 > 添加一个“;” 在 Arraylist 中的每条数据之后

问题描述

我编写了一个程序来使我的文本文件数据像CSV格式一样。

static String originalFileContent = "";

static BufferedReader reader; 

static BufferedWriter writer;


public static void main(String[] args)   {
        
        String input = args[1];
        String output = args[2];
    
        for(int i = 0; i<args.length; i++) {
           System.out.println("args[" + i + "]: " + args[i]);
        }
        
        try {
            readInput(input);
        } catch (IOException e) {
            
            e.printStackTrace();
        }
        try {
            createLogic();
        } catch (Exception e1) {
            
            e1.printStackTrace();
        }
        try {
            writeOutput(output);
        } catch (IOException e) {
            
            e.printStackTrace();
        }
        
                
}
    
public static void readInput(String input) throws IOException {
        
        reader = new BufferedReader(new FileReader(input));
        
        String currentReadingLine;
        currentReadingLine = reader.readLine();
        
        while (currentReadingLine != null) {
            
            originalFileContent += currentReadingLine; //-
            currentReadingLine = reader.readLine();   
              //String
        }
}
    
public static void createLogic() throws Exception  {
            
            BufferedReader in = new BufferedReader(new FileReader("input.txt"));
            String str = ";";

            ArrayList<String> list = new ArrayList<String>();
            while((str = in.readLine()) != null){
                list.add(str);
            }
            String format = "Name; Strasse; Ort" + System.lineSeparator();
            originalFileContent = format;
            int a = 1;
            for(String textString: list) {
                originalFileContent += textString;
                
                if(a%4 == 0) {
                 originalFileContent += System.lineSeparator();
                }
                a++;
            }
            list.add(";");
}
    
public static void writeOutput(String output) throws IOException {
        
        writer = new BufferedWriter(new FileWriter(output));
        writer.write(originalFileContent);
        writer.close();
        
}

我得到了输出:

姓名; 大街; 奥尔特

马克斯·阿百万。1234 南

约翰·多伊。4321西

欢乐满人间。101公园

Acme Manufacturing Co. 9001 主营

但我想;在每条数据之间有一个现在任何人如何使这成为可能?

标签: java

解决方案


        if(a%4 == 0) {
         originalFileContent += System.lineSeparator();
        } else {
         originalFileContent += ";";
        }

(顺便说一句,你真的应该使用一个复杂的数据类型,即一个类,来表示每一行数据。)


推荐阅读