【问题标题】:How to read and edit CSV file using Java Swing? [duplicate]如何使用 Java Swing 读取和编辑 CSV 文件? [复制]
【发布时间】:2014-05-05 09:12:19
【问题描述】:

我想在 Java Swing 中读取一个 CSV 文件,然后对其进行修改;例如,我想添加一些额外的列,一个包含我正在工作的计算机的 IP 地址的列以及更多的列。谁能帮我?

我正在开发一个项目,该项目读取 CSV 文件,对其进行修改,然后将该 CSV 文件加载到 MySQL 数据库中。我几乎尝试了所有教程,但找不到任何解决方案。

【问题讨论】:

  • 你必须读取 csv 文件,用修改后的数据创建另一个 csv 文件。删除旧文件并重命名新文件。
  • “我已经尝试了几乎所有教程,但找不到任何解决方案。” 我认为问题是您正在寻找太具体的教程。最接近的 5 个热门歌曲是什么?我不会想象会有任何一个教程同时提到 CSV 和 Swing。
  • 它不重复我也想在读取后修改csv文件然后将其存储在数据库中。
  • @user3599030 因此,请查看如何写入文件并弄清楚,而不是让我们为您完成。

标签: java swing


【解决方案1】:

读取 CSV 独立于 Swing:Swing 处理用户界面,但不处理文件输入/输出。为此,您可以使用 java.io 包中的类。特别是:

  • 用于读取文件的 FileReader 类

  • BufferedReader 类一次读取 CSV 文件的一行

  • StringTokenizer 类用于解析一行中的各个条目(java.util 的一部分)

然后,使用 swing 显示此信息的最简单方法是将此信息存储在嵌套的 Vector 对象 (java.util) 中:

  • 一个顶级向量,其中每个元素代表一条线,并且本身就是一个向量

  • 代表一行的每个向量都包含该行的条目

从那里,您可以创建一个 JTable (javax.swing) 以使用构造函数显示此信息

public JTable(Vector rowData, Vector columnNames)

您可以看到它还需要另一个 Vector,其中包含每列的名称(其大小必须与文件中一行中的条目数相同)。

【讨论】:

  • 请在泛型可用时使用它们——即Vector<String> 而不是Vector。在这种情况下,JTable 构造函数不接受它们,但由于您可以在需要 Vector 的地方传递 Vector<String>,因此您应该存储它们。
猜你喜欢
  • 2021-07-21
  • 1970-01-01
  • 1970-01-01
  • 2013-06-09
  • 1970-01-01
  • 1970-01-01
  • 2019-04-17
  • 2012-12-16
  • 1970-01-01
相关资源
最近更新 更多