Comment lire un fichier en plusieurs parties comme une chaîne de caractères au Printemps?
Je veux poster un fichier texte à partir de mon bureau à l'aide de Advanced Reste Client.
C'est mon contrôleur:
@RequestMapping(value = "/vsp/debug/compareConfig/{deviceIp:.*}", method = RequestMethod.POST, consumes = { "multipart/form-data" }, produces = { "application/json" })
public ResponseEntity<SuccessResult> compareCLIs(HttpServletRequest request, @RequestParam("file") MultipartFile file, @PathVariable("deviceIp") String device)
{
log.info(file.getOriginalFilename());
byte[] bytearr = file.getBytes();
log.info("byte length: ", bytearr.length);
log.info("Size : ", file.getSize());
}
Ce ne renvoie pas la valeur de l'octet de longueur ou la taille du fichier. Je veux lire le fichier de valeurs à un StringBuffer. Quelqu'un peut-il fournir des indications sur cette question? Je ne suis pas sûr si j'ai besoin d'enregistrer ce fichier avant de l'analyser en une chaîne de caractères. Si oui, comment dois-je enregistrer le fichier dans l'espace de travail?
Vous devriez éviter l'extraction de tous les octets à la fois. Au lieu de cela, utiliser
MultiPartFile#getInputStream
et de l'utilisation de ce flot de remplir votre StringBuilder
(vous n'avez pas besoin d'utiliser StringBuffer
) ou de toute autre manière de consommer les données.OriginalL'auteur nivedita rahurkar | 2015-07-13
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez charger le contenu d'un fichier en plusieurs parties dans une Chaîne de caractères, la solution la plus simple est:
Ou, si vous souhaitez spécifier le jeu de caractères:
Toutefois, si votre fichier est énorme, cette solution est peut-être pas le meilleur.
OriginalL'auteur OlivierTerrien
Tout d'abord, ce n'est pas lié à Ressort, et, deuxièmement, vous n'avez pas besoin d'enregistrer le fichier à analyser.
Pour lire le contenu d'un fichier en plusieurs parties en une Chaîne de caractères, vous pouvez utiliser Apache Commons IOUtils classe comme ceci
MultipartFile
est un type de Ressort -- donc, la question est liée à Ressort. Mais une fois que vous appelezgetBytes()
vous êtes entré dans le domaine des génériques de Java.OriginalL'auteur Rodrigo Villalba Zayas