как перенести мой код чтения и записи в реальный путь, кроме того, с помощью ресурсов try

#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 во время выполнения. Если вы пишете файл во время выполнения, он должен быть внешним по отношению к приложению; расположение файла может быть указано любым количеством способов.