首页 > 编程语言 >JAVA TSV文件的解析与生成

JAVA TSV文件的解析与生成

时间:2023-12-25 15:36:05浏览次数:42  
标签:文件 JAVA String TSV new fileUrl 解析 throws

TSV文件与CSV文件的区别

TSV为用制表符tab分隔的文本文件。 CSV为用逗号,分隔的文本文件。


TSV文件的打开方式

1.使用nodepad++等文本工具打开,使用记事本打开会导致某些行的格式错误。

2.打开一个Excel,直接将tsv文件拖进去即可。


JAVA TSV文件的解析

1.添加 univocity-parsers jar包依赖

	<dependency>
    	<groupId>com.univocity</groupId>
    	<artifactId>univocity-parsers</artifactId>
    	<version>2.6.1</version>
	</dependency>

如果项目无法加载该依赖,可以去下面网站下载该依赖的jar包,放到maven仓库的文件夹中。

网站地址:https://mvnrepository.com/

JAVA TSV文件的解析与生成_JAVA

2.JAVA代码示例

	/**
	 * 解析TSV文件
	 * 
	 * @param fileUrl 原文件地址
	 * @param keyword 关键字
	 * @return
	 * @throws FileNotFoundException
	 * @throws UnsupportedEncodingException
	 */
	public static List<String[]> readTsv(String fileUrl, String keyword) throws FileNotFoundException, UnsupportedEncodingException {
		List<String[]> list = new ArrayList<>();

		// 创建tsv解析器settings配置对象
		TsvParserSettings settings = new TsvParserSettings();
		settings.getFormat().setLineSeparator("\n");
		TsvParser parser = new TsvParser(settings);
		DataInputStream in = new DataInputStream(new FileInputStream(new File(fileUrl)));
		BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"));
		List<String[]> allRows = parser.parseAll(br);
		for (int i = 0; i < allRows.size(); i++) {
			String[] row = allRows.get(i);
			if (row != null && Arrays.asList(row).contains(keyword)) {
				list.add(row);
			}

			// String str = (allRows.get(i)[4].trim()).replaceAll("\"", "");
			// 获取tsv文件指定位置字符串
		}
		return list;
	}

JAVA TSV文件的生成

1.csv相关依赖

1.下载 javacsv jar包,嵌入到项目中

2.或者添加 opencsv 依赖

<dependency>
	<groupId>com.opencsv</groupId>
	<artifactId>opencsv</artifactId>
	<version>5.6</version>
</dependency>

2.Java代码示例

/**
 * 导出TSV文件
 * 
 * @param result 数据
 * @param fileUrl 生成的文件地址
 * @throws IOException
 */
public static void createTsvFile(List<String[]> result, String fileUrl) throws IOException {
	File tsvFile = new File(fileUrl);
	BufferedWriter writer = new BufferedWriter(new FileWriter(tsvFile, true));
	CsvWriter cwriter = new CsvWriter(writer, '\t');//将制表符换成逗号,即可生成csv文件,使用Excel打开即可。
	for (int i = 0; i < result.size(); i++) {
		cwriter.writeRecord(result.get(i), true);
	}
	cwriter.close();
}

标签:文件,JAVA,String,TSV,new,fileUrl,解析,throws
From: https://blog.51cto.com/u_16470648/8968936

相关文章

  • JAVA异常处理及分类
    Java异常处理是一种机制,用于在程序执行过程中处理错误和异常情况。异常是指在程序运行时发生的不正常情况,可能导致程序的中断或错误输出。在Java中,异常是通过对象来表示的,它们属于java.lang包。异常处理的目标是在程序发生异常时,能够以一种有序的方式进行处理,防止程序因异常而......
  • Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL synta
    问题描述Causedby:java.sql.SQLSyntaxErrorException:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'orderwherestatus!='已完成''atline1问题解决最后发现时因为......
  • jmeter 压力机端口不够用Response code:Non HTTP response code: java.net.NoRouteToH
    四  压测机异常,修改配置后重试Responsecode:NonHTTPresponsecode:java.net.NoRouteToHostException原因:Jmeter发压机的端口不够用解决办法:1.netstat|grepTIME_WAIT|wc-l查看目前处在TIME_WAIT状态的值大不大2.检查系统sysctl中配置项:(/etc/sysctl.conf)net.ipv4.t......
  • Java操作Word修订功能:启用、接受、拒绝、获取修订
    Word的修订功能是一种在文档中进行编辑和审阅的功能。它允许多个用户对同一文档进行修改并跟踪这些修改,以便进行审查和接受或拒绝修改。修订功能通常用于团队合作、专业编辑和文件审查等场景。本文将从以下几个方面介绍如何使用免费工具FreeSpire.DocforJava在Java程序中操作W......
  • Ubuntu 20.04 设置开机自启脚本启动java程序
    1)cp/lib/systemd/system/rc-local.service/etc/systemd/system2)修改/etc/systemd/system/rc-local.service,在该文件的最底部添加(可用vi/etc/systemd/system/rc-local.service命令)[Install]WantedBy=multi-user.targetAlias=rc-local.service3)创建/etc/rc.lcoal文件(vi/etc/rc.l......
  • javaCC链1
    cc1链jdk:jdk1.8.0_65commons-collections3.2.1cc1链起点是commons-collections包的Transformer接口,这个接口的transform方法接收一个对象作为参数packageorg.apache.commons.collections;publicinterfaceTransformer{Objecttransform(Objectvar1);}所以我们......
  • Java外部类和内部类
    一:外部类:平时定义的类二:内部类:一般情况下,类和类之间是相互独立的,内部类可以理解为打破了这种独立,让一个类成为了一个类的内部信息,和成员变量成员方法同级。所以创建内部类的时候要在外部类里面创建,不可以跳出外部类的大括号。同样内部类作为一个类也可以定义变量和方法  ......
  • java alibaba fastjson自定义序列化反序列化(教你解决问题思路)
    大家版本不一样方式可能不一样,我不管你的fastjson版本是哪个,按照我这个思路去弄就行写一个JSONObject类,导入fastjson的JSONObject,然后CTRL+鼠标左键点进去看JSONObject源码,然后点击IDEA的左上角selectopenedfile来定位到当前打开的文件。然后看当前目录这边可以看到上面有个Seria......
  • 史上最坑爹的Java代码:Hello, World!
    大家好!我是老码农。《码农说》公众号的第一篇文章我们先从:Hello,World!聊起!Hello,World!Hello,World!是很多Java开发人员写的第一程序,可就是这第一个程序,就把我们华丽丽带到了沟里。(其实也不怪咱们开发人员,主要是好多教材的第一个程序都是Hello,World!)一日掉沟里,很多年还一直......
  • java模式之-创建型模式
    typora-copy-images-to:uploadtypora-copy-images-to:upload一、设计模式的概述和分类二、单例模式1、介绍2、单例模式有八种方式:1)饿汉式(单线程推荐)2)懒汉式(线程不安全)3)双重检查(推荐)4、静态内部类(推荐)5、枚举6、注意事项三、工厂设计模式1、简单工厂模式2、工厂方法模式3、......