本文介绍了java导出json格式文件的示例代码,分享给大家,具体如下:

import java.io.File;

import java.io.FileWriter;

import java.io.Writer;

public class CreateFileUtil {

/**

* 生成.json格式文件

*/

public static boolean createJsonFile(String jsonString,String filePath,String fileName) {

// 标记文件生成是否成功

boolean flag = true;

// 拼接文件完整路径

String fullPath = filePath + File.separator + fileName + ".json";

// 生成json格式文件

try {

// 保证创建一个新文件

File file = new File(fullPath);

if (!file.getParentFile().exists()) { // 如果父目录不存在,创建父目录

file.getParentFile().mkdirs();

}

if (file.exists()) { // 如果已存在,删除旧文件

file.delete();

}

file.createNewFile();

// 格式化json字符串

jsonString = JsonFormatTool.formatJson(jsonString);

// 将格式化后的字符串写入文件

Writer write = new OutputStreamWriter(new FileOutputStream(file),"UTF-8");

write.write(jsonString);

write.flush();

write.close();

} catch (Exception e) {

flag = false;

e.printStackTrace();

}

// 返回是否成功的标记

return flag;

}

}

json字符串格式化工具代码:

public class JsonFormatTool {

/**

* 单位缩进字符串。

*/

private static String SPACE = " ";

/**

* 返回格式化JSON字符串。

*

* @param json 未格式化的JSON字符串。

* @return 格式化的JSON字符串。

*/

public static String formatJson(String json) {

StringBuffer result = new StringBuffer();

int length = json.length();

int number = 0;

char key = 0;

// 遍历输入字符串。

for (int i = 0; i < length; i++) {

// 1、获取当前字符。

key = json.charAt(i);

// 2、如果当前字符是前方括号、前花括号做如下处理:

if ((key == '[') || (key == '{')) {

// (1)如果前面还有字符,并且字符为“:”,打印:换行和缩进字符字符串。

if ((i - 1 > 0) && (json.charAt(i - 1) == ':')) {

result.append('\n');

result.append(indent(number));

}

// (2)打印:当前字符。

result.append(key);

// (3)前方括号、前花括号,的后面必须换行。打印:换行。

result.append('\n');

// (4)每出现一次前方括号、前花括号;缩进次数增加一次。打印:新行缩进。

number++;

result.append(indent(number));

// (5)进行下一次循环。

continue;

}

// 3、如果当前字符是后方括号、后花括号做如下处理:

if ((key == ']') || (key == '}')) {

// (1)后方括号、后花括号,的前面必须换行。打印:换行。

result.append('\n');

// (2)每出现一次后方括号、后花括号;缩进次数减少一次。打印:缩进。

number--;

result.append(indent(number));

// (3)打印:当前字符。

result.append(key);

// (4)如果当前字符后面还有字符,并且字符不为“,”,打印:换行。

if (((i + 1) < length) && (json.charAt(i + 1) != ',')) {

result.append('\n');

}

// (5)继续下一次循环。

continue;

}

// 4、如果当前字符是逗号。逗号后面换行,并缩进,不改变缩进次数。

if ((key == ',')) {

result.append(key);

result.append('\n');

result.append(indent(number));

continue;

}

// 5、打印:当前字符。

result.append(key);

}

return result.toString();

}

/**

* 返回指定次数的缩进字符串。每一次缩进三个空格,即SPACE。

*

* @param number 缩进次数。

* @return 指定缩进次数的字符串。

*/

private static String indent(int number) {

StringBuffer result = new StringBuffer();

for (int i = 0; i < number; i++) {

result.append(SPACE);

}

return result.toString();

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

java 如何导出json文件_java导出json格式文件的示例代码相关推荐

  1. java中取系统时间_JAVA中获取当前系统时间(示例代码)

    一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; public class NowStrin ...

  2. 富文本编辑器导出html静态页面和pdf格式文件

    在这里记录的都是在项目开发中遇到的问题,都是自己查找网上资料,经过测试总结出来的,就是希望有同样需求的人可以少走弯路. 本人当前使用的是若依框架自带的富文本编辑器,附上相关图片,具体的代码可以查看若依 ...

  3. java使用jxl包读写excel表格文件,即xls格式文件

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用jxl包读写excel表格文件,即xls格式文件 本实例演示使用jxl包实现对excel文件的操作,下载 测试代码 public st ...

  4. java将excel文件转换成txt格式文件

    在实际应用中,我们难免会遇到解析excel文件入库事情,有时候为了方便,需要将excel文件转成txt格式文件.下面代码里面提供对xls.xlsx两种格式的excel文件解析,并写入到一个新的txt文 ...

  5. python打包zip文件_python 解压文件,合并文件 打包成zip格式文件 生成MD5值

    #!/usr/bin/env python #_*_encoding:utf-8 # 2018/05/29 #augustyang #2.0 ''' 解压文件,合并文件 打包成zip格式文件 生成MD ...

  6. Java EasyExcel在Web网站中读写Excel的方法及示例代码

    使用EasyExcel可以更容易简单在Web网站中读写Excel,本文主要介绍在Java Web网站中读写Excel方法及示例代码. 原文地址:Java EasyExcel在Web网站中读写Excel ...

  7. 【ASE+python】实现将poscar格式文件批量转换为xsd格式文件

    将poscar格式文件批量转换为xsd格式文件 ASE介绍 ASE安装 ASE的ase.io.read()与ase.io.write() ase.io.read() ase.io.write() 单份 ...

  8. AAC文件解码成PCM格式文件

    上一篇写到PCM格式文件编码成AAC格式文件,这一步的原因是有利于传输.可以将PCM文件做了很大的压缩力度,使得包变得更小,便于传输.我使用播放器播放了AAC文件听到的是音速明显变快了,声音也变得尖锐 ...

  9. 如何将字库生成工具生成的 .DZK/ . bin格式的文件转成.c格式文件

    如何将字库生成工具生成的 .DZK/ . bin格式的文件转成.c格式文件 在我们项目开发的过程中,特别是做界面显示的时候,经常会遇到如 :多国文字点阵字库生成器TS3等软件其生成的.DZK格式文件, ...

  10. 如何在Photoshop中载入使用pat格式的文件?ps图案pat格式文件载入教程

    PS中有一种为"pat"后缀的ps图案模式,小编今天为大家带来了如何在Photoshop中载入使用pat格式的文件?ps图案pat格式文件载入教程,有需要的小伙伴快来看看吧! 在桌 ...

最新文章

  1. 【c语言】简单计算器
  2. python中decode和encode的区别
  3. matlab求kcf算法响应图_剖析KCF
  4. Django中扩展Paginator实现分页
  5. 借用虚拟机在真机安装 ubuntu, 亦可安装至移动硬盘
  6. SpringBoot2.x整合Redis 分布式集群_02
  7. 到 2022 年,75% 的数据库将托管在云端
  8. python参数检验框架_python-wtforms框架如何自定义校验器的原理和方法总结
  9. Android Studio的使用(四)--生成Get、Set方法
  10. 教你一招最屌的阅读开源项目的姿势
  11. 动画演示 Delphi 2007 IDE 功能[6] - 快速查看 Delphi 所有的核心数据类型
  12. python爬取网易云音乐付费音乐_python爬虫学习教程,爬取网易云音乐!
  13. 《Redis视频教程》(p20)
  14. cad打开卡死_AutoCAD程序启动就卡死的修复工具(解决CAD启动卡死不动)V2.00 修正版...
  15. Xftp卸载修复报错1628:完成基于脚本的安装失败
  16. 椭圆 / 椭圆的画法
  17. mac重新登陆前部分账户服务将不可用
  18. cdh+dolphinscheduler开启kerberos
  19. Mac字体编辑器哪个好用?FontLab VI for Mac永久激活版分享
  20. 机器学习集成方法Bagging、Boosting和Stacking

热门文章

  1. 苹果一键越狱工具_最新苹果越狱工具现世,可越狱所有iOS版本!
  2. RandomShuffleQueue '_1_input/shuffle_batch/random_shuffle_queue' is closed and has insufficient elem
  3. leetcode hot100(第二部分) + python(c++)
  4. Java消息服务~开发者分配的消息头
  5. Windows平台下GO语言编译器(GO-windows)
  6. displaytag 相关
  7. oracle自增的两种办法,ORACLE数据库实现自增的两种方式
  8. 用计算机进行有理数除法时,有理数的乘除法怎么算?,什么是有理数的乘除法。越详细越好。...
  9. java遍历删除原理,Java 垃圾回收机制实现原理
  10. 《我和他的结婚录像和相册集》的快速传播