#java #spring #spring-boot #rest #java-8
Вопрос:
Я написал код, мой код создает папку вместе с файлом txt и успешно сохраняет, однако мне не нравится сохранять папку и файл на локальном компьютере, я думаю, что мне нужно использовать относительный путь или кэш, поэтому мой вопрос в том, как преобразовать мой код в относительный путь и вместо того, чтобы выбрасывать excepiton, как я могу использовать try с ресурсами ?
мой фрагмент кода приведен ниже;
private Attachment upload(String generatedText, String fileName) throws IOException {
String filePath = "/C:/folder/createdFolder/" fileName ".txt";
File targetFile = new File(filePath);
FileWriter writer = new FileWriter(targetFile);
BufferedWriter buffer = new BufferedWriter(writer);
buffer.write(generatedText);
String bucketName = "generatedcodes";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
MultiValueMap<String, String> fileMap = new LinkedMultiValueMap<>();
ContentDisposition contentDisposition = ContentDisposition
.builder("form-data")
.name("object")
.filename(fileName ".txt")
.build();
fileMap.add(HttpHeaders.CONTENT_DISPOSITION, contentDisposition.toString());
FileReader reader = new FileReader(targetFile);
new BufferedReader(reader);
byte[] content = generatedText.getBytes();
InputStream is;
is = new ByteArrayInputStream(content);
new BufferedReader(new InputStreamReader(is));
HttpEntity<byte[]> requestEntity = new HttpEntity<>(generatedText.getBytes(), fileMap);
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("object", requestEntity);
HttpEntity<MultiValueMap<String, Object>> httpEntity =
new HttpEntity<>(body, headers);
Object object = service.post(httpEntity, bucketName);
AttachmentCreate attachmentCreate = new AttachmentCreate();
// some setters
attachmentCreate.setUrl("codes/" fileName ".txt");
buffer.close();
ResponseEntity<Attachment> attachment = attachmentService.postAttachment(attachmentCreate);
return attachment.getBody();
}
Спасибо
Комментарии:
1. Здесь есть отдельные проблемы. (1) Где должны храниться данные приложения и (2) Как мы можем получить к ним доступ. Веб-приложения не должны хранить данные в приложении: для этого нужны файлы и базы данных. И вы не можете (легко) записывать данные в файл JAR/WAR во время выполнения. Если вы пишете файл во время выполнения, он должен быть внешним по отношению к приложению; расположение файла может быть указано любым количеством способов.