- 浏览: 92033 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (148)
- 全文检索 (1)
- java (29)
- xml (2)
- json (2)
- redis springmvc (1)
- Redis (5)
- 开发常识 (1)
- tomcat (2)
- 单元测试Junit (2)
- 设计模式 (2)
- spring (10)
- jvm (2)
- eclipse (4)
- echart (1)
- mybatis (1)
- mysql (3)
- web (1)
- js (2)
- PL/SQL (2)
- 其他 (1)
- 人生 (1)
- 安全 (2)
- jsp (2)
- 硬件电脑 (1)
- linux (3)
- git (10)
- oracle (8)
- ant (1)
- maven (2)
- 正则表达式 (2)
- chrome (1)
- 面试 (6)
- 多线程 (19)
- bug (11)
- java工具类 (3)
- 算法 (1)
- bug,git (1)
- shell (2)
- springmvc (2)
- Java8 (1)
- 消息队列-rocketmq (1)
- es (1)
- dubbo (0)
- spring cloud (0)
- hashmap (0)
- springboot (1)
- velocity (0)
package test.com.hh.redisSearch; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.ArrayList; public class CSVFileUtil { // CSV文件编码 public final String ENCODE = "utf-8"; private FileInputStream fis = null; private InputStreamReader isw = null; private BufferedReader br = null; public CSVFileUtil(String filename, String encode) throws Exception { fis = new FileInputStream(filename); isw = new InputStreamReader(fis, encode); br = new BufferedReader(isw); } // ==========以下是公开方法============================= /** * 从CSV文件流中读取一个CSV行。 * * @throws Exception */ public String readLine() throws Exception { StringBuffer readLine = new StringBuffer(); boolean bReadNext = true; while (bReadNext) { // if (readLine.length() > 0) { readLine.append("\r\n"); } // 一行 String strReadLine = br.readLine(); // readLine is Null if (strReadLine == null) { return null; } readLine.append(strReadLine); // 如果双引号是奇数的时候继续读取。考虑有换行的是情况。 if (countChar(readLine.toString(), '"', 0) % 2 == 1) { bReadNext = true; } else { bReadNext = false; } } return readLine.toString(); } /** *把CSV文件的一行转换成字符串数组。指定数组长度,不够长度的部分设置为null。 */ public String[] fromCSVLine(String source, int size) { ArrayList tmpArray = fromCSVLinetoArray(source); if (size < tmpArray.size()) { size = tmpArray.size(); } String[] rtnArray = new String[size]; tmpArray.toArray(rtnArray); return rtnArray; } /** * 把CSV文件的一行转换成字符串数组。不指定数组长度。 */ public ArrayList fromCSVLinetoArray(String source) { if (source == null || source.length() == 0) { return new ArrayList(); } int currentPosition = 0; int maxPosition = source.length(); int nextComma = 0; ArrayList rtnArray = new ArrayList(); while (currentPosition < maxPosition) { nextComma = nextComma(source, currentPosition); rtnArray.add(nextToken(source, currentPosition, nextComma)); currentPosition = nextComma + 1; if (currentPosition == maxPosition) { rtnArray.add(""); } } return rtnArray; } /** * 把字符串类型的数组转换成一个CSV行。(输出CSV文件的时候用) */ public String toCSVLine(String[] strArray) { if (strArray == null) { return ""; } StringBuffer cvsLine = new StringBuffer(); for (int idx = 0; idx < strArray.length; idx++) { String item = addQuote(strArray[idx]); cvsLine.append(item); if (strArray.length - 1 != idx) { cvsLine.append(','); } } return cvsLine.toString(); } /** * 字符串类型的List转换成一个CSV行。(输出CSV文件的时候用) */ public String toCSVLine(ArrayList strArrList) { if (strArrList == null) { return ""; } String[] strArray = new String[strArrList.size()]; for (int idx = 0; idx < strArrList.size(); idx++) { strArray[idx] = (String) strArrList.get(idx); } return toCSVLine(strArray); } // ==========以下是内部使用的方法============================= /** *计算指定文字的个数。 * * @param str 文字列 * @param c 文字 * @param start 开始位置 * @return 个数 */ private int countChar(String str, char c, int start) { int i = 0; int index = str.indexOf(c, start); return index == -1 ? i : countChar(str, c, index + 1) + 1; } /** * 查询下一个逗号的位置。 * * @param source 文字列 * @param st 检索开始位置 * @return 下一个逗号的位置。 */ private int nextComma(String source, int st) { int maxPosition = source.length(); boolean inquote = false; while (st < maxPosition) { char ch = source.charAt(st); if (!inquote && ch == ',') { break; } else if ('"' == ch) { inquote = !inquote; } st++; } return st; } /** * 取得下一个字符串 */ private String nextToken(String source, int st, int nextComma) { StringBuffer strb = new StringBuffer(); int next = st; while (next < nextComma) { char ch = source.charAt(next++); if (ch == '"') { if ((st + 1 < next && next < nextComma) && (source.charAt(next) == '"')) { strb.append(ch); next++; } } else { strb.append(ch); } } return strb.toString(); } /** * 在字符串的外侧加双引号。如果该字符串的内部有双引号的话,把"转换成""。 * * @param item 字符串 * @return 处理过的字符串 */ private String addQuote(String item) { if (item == null || item.length() == 0) { return "\"\""; } StringBuffer sb = new StringBuffer(); sb.append('"'); for (int idx = 0; idx < item.length(); idx++) { char ch = item.charAt(idx); if ('"' == ch) { sb.append("\"\""); } else { sb.append(ch); } } sb.append('"'); return sb.toString(); } }
java其实有专门操作CSV文件的类和方法。java开源框架csvreader提供了一个轻量级的、简单方便的统一操作接口可用。要使用CsvReader,CsvWriter需要下载一个javacsv.jar导入到项目中才行,在项目上点击右键--属性--库--添加jar文件,选择javacsv.jar文件即可,然后在程序中用import com.csvreader.CsvReader,import com.csvreader.CsvWriter导入即可。
发表评论
-
linux 文件 dos unix格式,unix和dos下文本文件得区别
2023-09-06 23:23 161问题: 当在window ... -
java 枚举values()方法
2019-07-30 20:41 419工作中,同事 ... -
newHashMapWithExpectedSize
2019-07-30 19:45 1287newHashMapWithExpectedSize VS ... -
java 8 stream应用
2019-07-15 11:43 01.生成map List<BusinessFacili ... -
技术知识点汇总
2019-02-12 15:47 01. LTS(light-task-scheduler) ... -
架构演进
2018-12-21 00:54 371一传统垂直mvc项目 垂直架构图:表示层->业务逻辑层- ... -
集群中session共享
2018-12-20 23:25 0当项目演进时,一个节点出错,如何保证域名能访问到别的节点。 一 ... -
父类子类静态代码块执行
2018-08-22 15:23 0先看一个基础面试题: package com.jbx.te ... -
数组元素的初始化
2018-07-10 17:16 494直接上代码 ,char的初始化值是'\u0000' p ... -
统计一个字符串中每个字符串出现的次数
2018-07-03 17:43 602经常遇到这个问题:总结一下 思路和代码 import ja ... -
DateUtil
2018-03-15 20:53 497记录一下常用的工具类,方便使用的时候可以获取。 pack ... -
indexOf判断一个字符串是否包含另一个字符串
2018-02-26 08:58 512jdk中的表述如下 indexOf public int in ... -
eclipse 添加反编译
2018-01-25 08:57 322为eclipse中*.clsas/*.class withou ... -
Java读取配置文件
2018-01-24 16:00 313Java读取配置文件test.properties 文件tes ... -
HTTP请求头
2017-12-29 16:49 0Request Headers 当访问一个action时,在谷 ... -
阿里巴巴Java开发手册(终极版)
2017-11-13 16:37 486前言 《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队 ... -
JavaEE 基础实用教程(二)------Jsp应用基础
2017-11-03 17:22 659习题 1.画出HTML文件的基 ... -
JavaEE 基础实用教程(一)---简述
2017-11-03 14:55 594第一部分 实用教程 第 ... -
实现普通用户登录
2017-11-03 11:09 0页面元素: 用户名,密码,验证码,登录 1.创建登录页 ... -
Java容器-- 99集
2017-10-26 14:21 0API接口 Collection Set List H ...
相关推荐
在我们需求中需要读取一个csv文件的数据,但是只有旧的csv的几列数据再新写入一个csv文件,而且在旧的数据有空的数据,需要判断旧的csv的空值。可能写的存在不完善!但是应用的需求里面还是能用的
2. **Java读取CSV文件**: - 使用`BufferedReader`和`InputStreamReader`组合,可以指定字符编码读取文件。例如: ```java FileInputStream fis = new FileInputStream("path_to_file.csv"); InputStreamReader ...
以上就是使用javacsv库读取CSV文件并导入到MySQL数据库的基本步骤。在实际应用中,你可能需要处理更复杂的情况,比如错误处理、事务管理、性能优化等。此外,考虑到文件读写和数据库操作的性能,你还可以考虑使用多...
本人以JAVA来实现以支付宝的账单表为例,实现JAVA读取CSV..csv是一种文件格式(如.txt、.doc等),也可理解.csv文件就是一种特殊格式的纯文本文件。即是一组字符序列,字符之间已英文字符的逗号或制表符(Tab)分隔。
本篇将详细介绍如何在Java中有效地读取CSV文件,以及如何避免在导入Excel时可能出现的单元格取值问题。 首先,理解CSV文件的结构至关重要。CSV文件是以逗号分隔的纯文本文件,每一行代表一个记录,每个记录内的字段...
通过引用【opevcsv】依赖,逐行读取数据 并转为Map,Object>格式,后续可以通过BeanUtil.MaptoBean()方法...csv文件必须带表头,bean对象命名符合驼峰格式; 通过此方法可以快速的将文件转换为程序可以操作的bean对象;
Java读取CSV例子 Java读取CSV例子是通过使用javacsv-2.0.jar包来实现的。javacsv-2.0.jar包提供了CsvReader和CsvWriter两个类,分别用于读取和写入CSV文件。在本例子中,我们将展示如何使用javacsv-2.0.jar包来...
Java读取excel,Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进行操作。
本教程将深入探讨如何使用Java在Eclipse集成开发环境中读取CSV文件中的指定行和列数据。 首先,我们需要了解CSV文件的基本结构。CSV文件是以逗号分隔的文本文件,每行代表一个记录,每个记录的字段由逗号分隔。例如...
首先,我们需要了解如何使用Java的标准库`java.io`和`java.nio`来读取CSV文件。最常用的是使用`BufferedReader`配合`Scanner`或者`Files.lines()`方法。例如: ```java import java.io.BufferedReader; import java...
读取CSV文件主要使用`CSVReader`类。以下是一个简单的例子: ```java import com.opencsv.CSVReader; public class CSVReaderExample { public static void main(String[] args) { try (CSVReader reader = new ...
下面的Java代码展示了如何使用`BufferedReader`类和`FileInputStream`类来读取CSV文件: ```java import java.io.*; import java.util.*; public class HandleCsv { public static void main(String[] args) ...
1. **读取CSV**:使用Java读取CSV文件,解析每一行的数据,可能需要创建一个数据模型类来存储解析后的数据。 2. **数据转换**:根据数据结构,将CSV数据转换为Neo4j可以理解的格式。例如,将CSV中的行转化为节点或...
Java 读取 CSV 文件内容示例代码 Java 读取 CSV 文件内容是一种常见的数据处理操作,以下是 Java 读取 CSV 文件内容的示例代码。 CsvUtil 类 CsvUtil 是一个用于读取 CSV 文件内容的工具类,提供了读取 CSV 文件...
可读取复杂的csv文件,根据引号和逗号等分割读取所需要的数据信息。
利用Java swing 对csv和excel文件进行读写;并且可以同时读取5个文件的数量;通过关键字配置来读文件,还有就是通过POI CSVWriter等类的使用来对excel和csv等文件进行操作
Java读取CSV文件主要依赖于第三方库,如Apache Commons CSV或OpenCSV。在给定的代码示例中,使用的是`com.csvreader.CsvReader`类,这表明使用的是OpenCSV库。 **关键代码解读:** ```java // 创建CsvReader实例并...
Java 读写 CSV 文件是指使用 Java 语言来读取和写入 CSV 文件,CSV 文件是一种常用的数据文件格式,逗号分隔的文本文件,默认可以用 Office 软件打开。CSV 文件可以包含各种特殊字符的处理信息,如对包含特殊字符的...
然而,在Java中读取和写入csv文件时,中文字符如果不正确地处理,可能会出现乱码的情况。下面我们将详细介绍Java避免UTF-8的csv文件打开中文出现乱码的方法。 首先,需要了解UTF-8和UTF-16LE这两种编码格式。UTF-8...