上周在公司搞一个批量修改数据的问题,业务方给我发了一份Excel数据,共1000条,每行需要我转成参数调用一个接口
第一反应是使用hutool解析Excel,然后处理数据,生成参数调用接口。然而解析Excel比较麻烦,这种临时任务这么做显然不方便。
直接把数据复制成文本显然更好。
我看数据不多,就直接复制出来数据到java的一个字符串常量上,然后进行字符串分割调用接口。
字符串如下:
但是在执行中遇到个问题,提示 java 字符串常量过长
网上查了下,说了几种方案,比如说把一个字符串改成多个字符串相加的形式,本来想改,后来发现复制到idea的时候,idea已经帮我做好这一步了,但是还有这个问题
又说可以使用 StringBuilder,我就把replace后修改了一下,
然后执行报错
直接堆栈溢出了。。。
后来我采用读文件的方式解决了,但是在java里读文件毕竟也比较麻烦,今天正好没事,看看有没有啥更好的办法。
public class ResourcesController {
@Autowired
private ResourceLoader resourceLoader;
@GetMapping("readFileFromJarWithResourceLoader")
public void readFileFromJarWithResourceLoader() {
try {
Resource resource = resourceLoader.getResource("classpath:data.txt");
try (BufferedReader reader = new BufferedReader(new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
} catch (IOException e) {
System.err.println("Error reading file from jar: " + e.getMessage());
}
}
}
经过一番摸索,还真有个办法可以,那就是转成数组。
首先把数据复制到sublime中。ctrl+A全选,ctrl+shift+L 使用列编辑器,按双引号首尾添加双引号,然后按end再按逗号,在末尾加上逗号。
之后写一小部分代码,String[] arr = {}
把文本复制到大括号里即可。
至此一切正常。