1、获取文件夹里的某个文件夹
比如文件夹里有这些文件,每个文件夹里有几张的图片;
//获取文件夹里的UPC文件夹
public static List<String> getUPCFolder(String base, String upc) {
String filepath = base + "\\" + upc;
File file = new File(filepath);
List<String> imgList = new ArrayList<>();
if (file.isDirectory()) {
String[] list = file.list();
for (String s : list) {
String imgPath = filepath + "\\" + s;
imgList.add(imgPath);
}
}
return imgList;
}
测试结果:
@Test
public void test3(){
List<String> upcFolder = getUPCFolder("F:\\lbx\\美团新增商品图片", "6934230600072");
for (String path : upcFolder) {
//截取路径后面的图片,比如:6934230600072-1.jpg
String img_name = path.substring(path.lastIndexOf("\\") + 1);
System.out.println(img_name);
}
}
2、图片字节流转byte数组
上面我们获取的图片,如果想把它处理成图片字节流:
//图片字节流转byte数组
public static byte[] image2byte(String path) {
byte[] data = null;
FileImageInputStream input = null;
try {
File file = new File(path);
input = new FileImageInputStream(file);
ByteArrayOutputStream output = new ByteArrayOutputStream(1000);
byte[] buf = new byte[1000];
int numBytesRead = 0;
while ((numBytesRead = input.read(buf)) != -1) {
output.write(buf, 0, numBytesRead);
}
data = output.toByteArray();
output.close();
input.close();
} catch (FileNotFoundException ex1) {
ex1.printStackTrace();
} catch (IOException ex1) {
ex1.printStackTrace();
}
return data;
}
测试结果:
@Test
public void test4(){
List<String> upcFolder = getUPCFolder("F:\\lbx\\美团新增商品图片", "6934230600072");
for (String path : upcFolder) {
String img_name = path.substring(path.lastIndexOf("\\") + 1);
System.out.println(img_name);
byte[] bytes = FileUtils.image2byte(path);
for (int i = 0; i < bytes.length; i++) {
System.out.println(bytes[i]);
}
}
}