Java:CSV 文件轻松读/写

2023-12-01

我正在开发一个需要快速访问 CSV 逗号分隔电子表格文件的程序。 到目前为止,我已经能够使用 BufferedReader 轻松读取它。 但是,现在我希望能够编辑它读取的数据,然后将其导出回 CSV。

电子表格包含姓名、电话号码、电子邮件地址等。该程序列出了每个人的数据,当您单击它们时,它会显示一个包含更详细信息的页面,这些信息也是从 CSV 中提取的。在该页面上,您可以编辑数据,我希望能够单击“保存更改”按钮,然后将数据导出回 CSV 中的相应行,或者删除旧数据并附加新数据。

我不太熟悉使用 BufferedWriter,或者我应该使用的任何东西。

我开始做的是创建一个名为 FileIO 的自定义类。它包含 BufferedReader 和 BufferedWriter。到目前为止,它有一个返回 bufferedReader.readLine() 的方法,称为 read()。现在我想要一个名为 write(String line) 的函数。

public static class FileIO {
    BufferedReader read;
    BufferedWriter write;

    public FileIO (String file) throws MalformedURLException, IOException {
        read = new BufferedReader(new InputStreamReader (getUrl(file).openStream()));
        write = new BufferedWriter (new FileWriter (file));
    }

    public static URL getUrl (String file) throws IOException {
        return //new URL (fileServer + file).openStream()));
                FileIO.class.getResource(file);
    }

    public String read () throws IOException {
        return read.readLine();
    }

    public void write (String line) {
        String [] data = line.split("\\|");
        String firstName = data[0];

        // int lineNum = findLineThatStartsWith(firstName);
        // write.writeLine(lineNum, line);
    }
};

我希望有人知道我该如何做到这一点?


你可以看看而不是重新发明轮子OpenCSV支持CSV文件的读写。以下是示例阅读和写作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java:CSV 文件轻松读/写 的相关文章

  • C# 与 JAVA 接口实例

    我不知道该如何回答我的问题 它是关于Android可以实例化接口的 我正在尝试用 C 来做 现在我非常确定 Java 和 C 的规则是不能创建抽象和接口的实例 但我很想知道Android是如何做到这一点的 在 Android 中你可以这样做
  • 我可以在 Java 枚举上使用构建器模式吗

    我正在重写一些代码 并且我已经决定了重新创建类的方法 因为有固定数量的工作表 我将它们创建为枚举 这是基于构建器模式与伸缩构造器的可读性的决定 我的代码获取一些 xls 文件 添加标题 并从其他 xls 文件中读取一些 也许还有一些子表 然
  • Google App Engine 数据存储写入:如何远程启用/禁用只读模式?

    在阅读备份时GAE 的数据存储 https developers google com appengine docs adminconsole datastoreadmin where 我们强烈建议您在备份或恢复期间将应用程序设置为只读模式
  • Spring MVC - 自动查找验证器

    假设我有一个像这样的示例实体类 public class Address 和相应的验证器 Component public AddressValidator implements Validator Override public bool
  • Java中的字节和字符转换

    如果我将一个字符转换为byte然后回到char 那个角色神秘地消失了 变成了别的东西 这怎么可能 这是代码 char a line 1 byte b byte a line 2 char c char b line 3 System out
  • Java中如何对对象数组进行排序?

    我的数组不包含任何字符串 但它包含对象引用 每个对象引用都通过 toString 方法返回名称 id 作者和发布者 public String toString return name n id n author n publisher n
  • 使用起始字符串和结束字符串从长字符串中提取子字符串?

    我有这个长字符串 它是一个长的连续字符串 Home address H NO 12 SECTOR 12 GAUTAM BUDH NAGAR NOIDA 121212 UTTAR PRADESH INDIA 911112121212 Last
  • 我从 String placeName = placeText.getText().toString(); 收到空指针异常

    您好 想从编辑文本中获取地名并在地图上标记 这是我的代码 其中出现空指针异常 请帮助我应该做什么以及哪里出错了 因为我从对话框中的编辑文本字段获取地名 View layout View inflate this R layout alert
  • grails 中的 log4j:如何登录文件?

    我的 grails config groovy 中有这个 log4j 配置 log4j error org codehaus groovy grails web servlet controllers org codehaus groovy
  • 加密 mongodb 中的密码字段

    我有以下代码 它插入userName and password进入数据库 但密码以纯文本格式存储 我的意思是 当我查看数据库时 我可以看到插入的密码 我想存储password in encrypted format MongoClient
  • 如何在 PuTTY 中保存并运行 Java 文件?

    我是 AWS 亚马逊网络服务 的新手 所以这可能是一个基本问题 我在 AWS 上创建了一个 EC2 实例 我有一台 Windows 计算机 因此我使用 PUTTY 来连接 Linux 实例 连接到我的 EC2 实例后 我使用以下命令编写 J
  • Java:如果数组大小未知,如何初始化?

    我要求用户输入 1 到 100 之间的一些数字并将它们分配到一个数组中 数组大小未初始化 因为它取决于用户输入数字的次数 我应该如何分配数组长度 如果用户输入 5 6 7 8 9 5 个数字 则 int list becomes int l
  • @Transactional 注解属于哪里?

    如果您将 Transactional in the DAO类和 或其方法 或者注释使用 DAO 对象调用的服务类是否更好 或者注释两个 层 是否有意义 我认为事务属于服务层 它是了解工作单元和用例的人 如果您将多个 DAO 注入到需要在单个
  • Netty Nio java 中的通信

    我想在 Netty nio 中创建一个具有两个客户端和一个服务器的通信系统 更具体地说 首先 我希望当两个客户端与服务器连接时从服务器发送消息 然后能够在两个客户端之间交换数据 我正在使用本示例提供的代码 https github com
  • Java MYSQL/JDBC 查询从缓存的连接返回过时的数据

    我一直在 Stackoverflow 中寻找答案 但似乎找不到不涉及 Hibernate 或其他数据库包装器的答案 我直接通过 Tomcat 6 Java EE 应用程序中的 MYSQL 5 18 JDBC 驱动程序使用 JDBC 我正在缓
  • Tomcat下的Spring CXF Soap Web服务:找不到服务

    我正在尝试使用 CXF 和 Spring 设置一个在 Tomcat 上运行的简单 CXF Web 服务 我有一个 Web 应用程序初始化程序来引导 CXF servlet public class WebAppInitializer ext
  • 从 Java 应用程序读取的文件是否会调用系统调用?

    我的理解是 请求文件系统路径 例如 aFile 的用户应用程序将调用文件系统并获取所请求文件的虚拟地址 然后应用程序将尝试以该地址作为参数 即作为 CPU 指令 进行读 写操作 执行读取命令时 内存管理单元会将该地址转换为物理地址 并查看页
  • Java 执行器和长寿命线程

    我继承了一些使用 Executors newFixedThreadPool 4 的代码运行 4 个长寿命线程来完成应用程序的所有工作 这是推荐的吗 我读过Java 并发实践 https rads stackoverflow com amzn
  • Java环境变量设置方法

    我已将以下行插入 bash profile export GOOGLE APPLICATION CREDENTIALS Users jun Downloads export PATH PATH GOOGLE APPLICATION CRED
  • ImageIO.read(...) - 非常慢,有更好的方法吗?

    我正在加载大量将在我的应用程序中使用的图标 我计划在服务器启动时从 jar 中加载所有这些 然而 由于数百张图像加起来刚刚超过 9MB 执行此任务仍然需要 30 秒多的时间 我现在正在一个单独的线程中执行此操作 但这让我想知道我是否在代码中

随机推荐

  • C中父进程向子进程发送信号

    我的子进程无法开始工作 我需要传递信号并执行readUsual功能 这是一小段代码 int main pid t pid2 fork if pid2 lt 0 printf Can t create child process n else
  • Julia 变量范围

    我试图在 while 循环中使用一些全局变量 m n r 但 Julia 1 0 0 告诉我这些变量未定义 该代码适用于 julia 0 7 0 但有一些警告 这是我正在使用的代码 是的 写得不好 我希望这不是问题 我删除了一个printl
  • Zend 框架和 Wordpress 集成

    这是我的问题 我有 require once application bootstrap php 在我的 zf 网站根文件夹中的 index php 中 我将 WordPress 博客放入 public html blog 中 我需要将 W
  • 在 Java Applet 中单击后 JButton“保持按下状态”

    我的 Java Applet 中有一个 JButton 按下按钮后 ActionListener 必须执行大量操作 因此 正因为如此 当用户单击按钮时 它会 保持按下 一段时间 有时甚至 5 分钟 而不是立即禁用自身 它会在这 5 分钟后自
  • 谷歌云存储访问的公共URL被拒绝

    我有这个 URL 但访问被拒绝 需要任何权限 https storage googleapis com BUCKET Artboard 4 png 出现此错误 匿名调用者没有 storage objects get 访问 Google Cl
  • 从所有子集中恢复原始数组

    给定一个数组的所有子集和 然后 您应该从提供的子集和中恢复原始数组 原始数组中的每个元素都保证为非负且小于 10 5 原始数组中的元素不超过 20 个 原数组也已排序 保证输入有效 实施例1 如果提供的子集总和是这样的 0 1 5 6 6
  • Microsoft CryptoAPI:如何将 PUBLICKEYBLOB 转换为 DER/PEM?

    我有一个生成的 RSA 密钥对 存储为 PRIVATEKEYBLOB 和 PUBLICKEYBLOB 并且我需要能够将这些密钥转换为 DER 或 PEM 格式 以便我可以在 PHP 或 Python 中使用它 我发现我可以使用 CryptE
  • Pymongo forEach 格式化

    如何格式化 forEach 函数 使其可以驻留在多行上而不会导致语法错误 就像是 self request db myCollection find forEach function u u forSong self request db
  • 带 + 和 - 的 WPF 扩展器按钮样式

    样式专家 我需要帮助设计一种类似于 Visual Studio 代码编辑器中的 Expander 样式 到目前为止 我已经想出了这个
  • 我的 Visual Studio 2012 中的行号旁边出现了彩色条

    今天 当我在工作中启动 Visual Studio 2012 时 我发现了一些新的彩色条 我们通过 RDP 在共享远程服务器上工作 所以我四处询问是否有人安装或更新了任何东西 似乎没有人做过 任何事 我看到的酒吧有 我知道最左边的条 绿色和
  • 将 python 中的单个有序列表转换为字典

    我似乎无法找到一种优雅的方式来开始t并导致s gt gt gt t a 2 b 3 c 4 magic gt gt gt print s a 2 c 4 b 3 我想出的解决方案似乎不太优雅 s dict for i in xrange 0
  • 无法从前端解析 docker compose 服务名称

    您好 我是使用 docker 进行开发的新手 我试图在这里从前端 react 到后端 express js 进行通信 我也启用了 cors 但收到错误消息net ERR NAME NOT RESOLVED当尝试使用 url 从后端获取时ht
  • java.net.BindException:无法分配请求的地址

    我想在我的应用程序中使用低端口 Spring web Tomcat7 上的 SNMP 陷阱接收器 正如我在这个线程中所说的Ubuntu服务器上Java程序绑定低端口 之前 我收到错误 Permission Denied 然后我将tomcat
  • 如何在不按uiimagepickercontroller上的拍照按钮的情况下自动拍照?

    在我的项目中 我需要每隔一分钟自动拍照一次 但我找不到任何解决方案 这是我实现的代码 但它不起作用 我使用 NSTimer 调用相机每 4 秒拍照一次 我只需要拍照 This method is all for the time setup
  • Oracle 中的并发性比 SQL Server 更好吗?

    Oracle 数据库是否能够比 MS SQL Server 数据库实现更好的并发性 特别是在 OLTP 场景中 例如 ERP 系统 我无意中听到一位 SAP 顾问提出了这样的说法 他提到了 Oracle 锁定技术 例如行锁定和多版本读取一致
  • 我编码的一个简单函数发生分段错误错误[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 这里我只想定义一个返回矩阵乘法的函数 其中N任意 我想生成一个矩阵new命令 当我执行该函数时 出现错误 Segmentation fault core dumped 每当我
  • 在Android webview上使用本地存储

    我正在试验 Android 代码 我想使用 HTML 5 本地存储来存储一个值 对于本练习 我使用一个像这样简单的页面 http www w3schools com html5 tryit asp filename tryhtml5 web
  • 如何监控远程目录和文件的变化?

    我正在尝试监视远程目录和文件 我需要存储或记录文件和目录的更改 即 访问 写入 打开和关闭事件 我尝试使用 pyinotify 来监视和记录这些事件 我为本地系统文件实现了它 但我的问题是如何监视远程文件和目录 我是否能够借助 ssh 或任
  • 在 IPython 中运行 %%cython-magic 单元时,CompileError/LinkerError: "command 'gcc' failed with exit status 1" 是什么意思

    有时 当我在 IPython 笔记本中运行 cython cell 时 我会得到很长的回溯 并以相当短的错误消息结尾 编译错误 命令 gcc 失败 退出状态为 1 or LinkError 命令 gcc 失败 退出状态为 1 在 Windo
  • Java:CSV 文件轻松读/写

    我正在开发一个需要快速访问 CSV 逗号分隔电子表格文件的程序 到目前为止 我已经能够使用 BufferedReader 轻松读取它 但是 现在我希望能够编辑它读取的数据 然后将其导出回 CSV 电子表格包含姓名 电话号码 电子邮件地址等