public static void saveMap(String fileName){
ArrayList<byte[]> mapData = new ArrayList<>();
for(int i = 0; i < DrawPanel.cells.size(); i++){
try {
if(DrawPanel.cells.get(i).image != null){
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(DrawPanel.cells.get(i).image,"png",byteArrayOutputStream);
byte[] bytes = byteArrayOutputStream.toByteArray();
mapData.add(i,bytes);
}
} catch (IOException e) {
e.printStackTrace();
}
}
try {
FileOutputStream fileOutputStream = new FileOutputStream(new File("res/Saved Maps/"+fileName+".map"));
for(int i = 0; i < mapData.size(); i++){
fileOutputStream.write(mapData.get(i));
}
fileOutputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Он принимает изображение из каждой ячейки (JPanel), преобразует его в байты и добавляет его в список массивов. Затем он записывает список массивов в файл. Вопрос в том, как мне это сделать? Так что я могу получить каждое изображение в соответствующей ячейке.Как преобразовать байты из файла в изображение - Java
Обратите внимание, что запись в ресурсы приложения не удастся при запуске из файла .jar, поскольку ресурсы являются записями в архиве .jar и вообще не являются файлами. – VGR
Это я, или этот вопрос пахнет, как [проблема XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)? –