代码仅供参考,视实际情况进行相关调整
文件(图片)转Base64
public static String encodeBase64File() throws Exception {
File file = new File("D:\\001391.jpg");
FileInputStream inputFile = new FileInputStream(file);
byte[] buffer = new byte[(int)file.length()];
inputFile.read(buffer);
inputFile.close();
return new BASE64Encoder().encode(buffer);
}
public static void main(String[] args) throws Exception {
File file = new File("D:\001391.jpg");
//file文件转换为base64编码
FileInputStream inputFile = new FileInputStream(file);
byte[] buffer = new byte[(int)file.length()];
inputFile.read(buffer);
inputFile.close();
String base = new BASE64Encoder().encode(buffer);
//封装参数
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("image", base);
paramMap.put("image_type", "BASE64");
String baseurl = "http://114.116.125.146:5001";
String url = baseurl + "/rest/1.0/demo";
try {
System.out.println(paramMap);
//RestTemplate 实例化过程发现默认的RestTemplate 只支持application/json格式,所以需要手动补充text/html格式
RestTemplate restTemplate = new RestTemplate();
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(
MediaType.TEXT_HTML,
MediaType.TEXT_PLAIN));
restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter);
//识别
ResponseEntity<net.sf.json.JSONObject> responseEntity = restTemplate.postForEntity(url, paramMap, net.sf.json.JSONObject.class);
net.sf.json.JSONObject jsonObject = responseEntity.getBody();
String result = jsonObject.getString("result");
} catch (Exception e) {
e.printStackTrace();
}
}
byte[]转文件(需指定存放文件的位置、文件全称(a.jpg))
/**
* 方法中传入的参数分别为
* filePath:为生成的file文件地址,地址后要以\(File.separator)结尾,
* fileName:为生成的file文件名称
**/
public static File fileFromBytes(byte[] bytes, String filePath, String fileName) {
BufferedOutputStream bos = null;
FileOutputStream fos = null;
File file = null;
try {
file = new File(filePath + fileName);
if (!file.getParentFile().exists()) {
//文件夹不存在 生成
file.getParentFile().mkdirs();
}
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(bytes);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return file;
}
base64转byte[]
public static byte[] getFromBASE64(String s) {
if (s == null) {
return null;
}
try {
byte b[] = Base64.decode(s);
return b;
} catch (Exception ie) {
log.error("上傳信息解码错误");
ie.printStackTrace();
return null;
}
}
(读取Resource目录下的文件)将InputStreamReader转为String
InputStreamReader inputStreamReader = new InputStreamReader(Objects.requireNonNull(XmlUtil.class.getResourceAsStream(filePath)));
if (inputStreamReader == null) {
return Maps.newHashMap();
}
String xmlContent;
StringBuilder line = new StringBuilder();
BufferedReader br = new BufferedReader(inputStreamReader);
while ((xmlContent = br.readLine()) != null) {
line.append(xmlContent);
}
xmlContent = line.toString();