java 常用处理方案
记录一些常用的信息
系统信息获取
获取系统屏幕属性
Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
int width = (int)screensize.getWidth();
int height = (int)screensize.getHeight();
数据函数问题
取余问题
java支持取余数,不仅支持整数取余,而且支持小数取余
int a =23;
a%5=3;
double b =23.3;
b%0.5=0.3
但是由于double小数的具体计算性质,导致取余的结果无法真正做到,b%0.5一定等于 0.3,而是一个接近0.3的小数
IO数据流
内存操作流
1.字节数组流 :ByteArrayInputStream与ByteArrayOutputStream
2.字符数据流: CharArrayReader与CharArrayWriter
3.字符串流:StringReader 与 StringWriter
内存流的作用:
1、用于操作字节数组的流对象,其实它们就是对应设备为内存的流对象。
2、该流的关闭是无效的,因为没有调用过系统资源。
3、按照流的读写思想操作数组中元素
excl字符流转化
可以通过如下的方法将Base64编码的excl文件数组转化为workbook,进而进行处理
public static Workbook base64String2Workbook(String base64Str,
String fileName) throws Exception {
int lastIndexOf = fileName.lastIndexOf('.');
String type = fileName.substring(lastIndexOf + 1);
byte[] readFileToByteArray = Base64.decodeBase64(base64Str);
ByteArrayInputStream input = new ByteArrayInputStream(
readFileToByteArray);
Workbook workBook = null;
if (type.equals("xls")) {
workBook = new HSSFWorkbook(new POIFSFileSystem(input));
} else {
workBook = new XSSFWorkbook(input);
}
return workBook;
}
public static String workbook2Base64String(Workbook workbook)
throws Exception {
ByteArrayOutputStream output = new ByteArrayOutputStream();
workbook.write(output);
byte[] byteArray = output.toByteArray();
String encodeBase64String = Base64.encodeBase64String(byteArray);
return encodeBase64String;
}