java - 读取 .txt 文件并转换为 .csv 文件

标签 java csv filewriter printwriter

将数据从 .txt 文件转换为 .csv 文件时遇到问题。一切都运行得非常干净,但当它转换为 .csv 文件时,它只显示 .txt 文件中的部分数据。 .txt 文件是 input.txt 这是我所拥有的:

import java.util.Scanner;
import java.io.*;
import com.csvreader.CsvWriter;

public class InputOutputExample
{

public static void main(String[] args) throws IOException 
{

Scanner keyboard = new Scanner(System.in);

    System.out.println("Enter the name and file type: ");
    String filename = keyboard.nextLine();

    File file = new File(filename);
    Scanner inputFile = new Scanner(file);

    while (inputFile.hasNext()) {
        String studentInfo = inputFile.nextLine();

        System.out.println(studentInfo);

        CsvWriter outputFile = new CsvWriter("C:\\Users\\John\\Desktop\\output.csv");
        outputFile.write(studentInfo);
        outputFile.close();

    }



    inputFile.close();

}

}

Java 程序中的输出:

Enter the name and file type: 
input.txt [Enter]

Student_Id, student_name, gender, grade

993541, Ricky, male, A
037832, Joanne, female, A
034442, Amanda, female, B
054335, Logan, male, B
042343, Paul, male, B

Process finished with exit code 0

转换为 .csv 后,它仅在单元格中显示 42343,Paul,male,B

最佳答案

您应该删除在 while 循环之外创建的 csv 文件:

CsvWriter outputFile = new CsvWriter("C:\\Users\\John\\Desktop\\output.csv");

while (inputFile.hasNext()) {
    String studentInfo = inputFile.nextLine();
    System.out.println(studentInfo);
    outputFile.write(studentInfo);
    outputFile.newLine();
}

outputFile.close();

关于java - 读取 .txt 文件并转换为 .csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39610342/

相关文章:

python - 使用 Python 从 Internet 下载大型 CSV 文件的进展

java - 有没有与列表一起使用的函数来跳转下一行?

java - 从java程序中删除硬编码文件路径

Java反射和自动装箱

java - 如何防止 Thymeleaf 对我的模板进行 url 编码?

Java-如何从URL下载大于Integer.MAX_VALUE的文件

java - 如何在结果集中获取字符串(Table.Column) JayBird

MySQL Workbench 数据导入向导未显示 CSV 中的所有列

python - 通过 Python 更改 CSV 文件中的特定值

java - 在Java中覆盖现有文件