指定java进程启动日志
- 只输出错误信息到日志文件:
nohup xxx.jar >/dev/null 2>log &
- 不产生任何日志:
nohup xxx.jar ./program >/dev/null 2>&1 &
逗号分割的字符串转换成集合
List<String> list = Arrays.asList(str.split(","));
集合转换成逗号分割的字符串
String str = Joiner.on(",").join(list);
stream从对象集合中筛选出符合条件的
List<User> list = userList.stream().filter(u -> u.getAge() > 30).collect(Collectors.toList());
stream对象集合累加求和
BigDecimal sum = list.stream().map(Plan::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
int sum = userList.stream().mapToInt(User::getAge).sum();
stream对象根据字段分组
list.stream().collect(Collectors.groupingBy(User::getUserId));
将集合分组,每组targ个
private static <T> List<List<T>> subsetList(int targ, List<T> mList) {
List<List<T>> list = new ArrayList<>();
int m = mList.size() / targ;
for (int i = 0; i < m; i++) {
list.add(mList.subList(i * targ, i * targ + targ));
}
if (mList.size() % targ != 0) {
list.add(mList.subList(m * targ, mList.size()));
}
return list;
}
读取resources下文件
String path = this.getClass().getClassLoader().getResource("img/logo.png").getPath();
java poi 导出excel 设置将整个工作表打印在一页 打印机设置
// 创建excel文件对象
HSSFWorkbook wb = new HSSFWorkbook();
// 创建sheet
Sheet sheet = wb.createSheet("sheet1");
// 将整个工作表打印在一页(缩放)
sheet.setAutobreaks(true);
Linux部署的服务在生成图片时ImageIO.write()
出现“Invalid argument to native writeImage”异常,本地运行正常,推测可能是因为当前服务器系统centos7使用的是openJDK.
先将图片写入ByteArrayOutputStream
,再转成Base64编码后OutputStream.write()
BufferedImage image = ImageIO.read(imageFile);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
image = zoom(image, width, height);
ImageIO.write(image, "png", outputStream);
//将图片转成base64,再写入目标路径
String base64 = Base64.getEncoder().encodeToString(outputStream.toByteArray());
File target = new File(targetPath);
Base64.Decoder decoder = Base64.getDecoder();
byte[] b = decoder.decode(base64);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {
b[i] += 256;
}
}
OutputStream os = new FileOutputStream(target);
os.write(b);
os.flush();
os.close();
outputStream.flush();
outputStream.close();
return targetPath;