2015-08-27 1 views
1

J'essaie de générer un pdf dans mon application.Quelque chose de similaire à la méthode FileCopyUtils.copy en Java de base

J'ai utilisé ce qui suit dans un projet précédent pour copier le tableau d'octets dans le flux de sortie.

FileCopyUtils.copy(fileContent, response.getOutputStream()); 

Dans mon projet actuel, nous n'utilisons pas de cadre de ressort. Donc, je ne peux pas utiliser FileCopyUtils ici. Y at-il un autre moyen de faire la même chose en java basique simple.

+1

Vérifiez la source 'FileCopyUtils' pour le guidage –

+0

Est-ce que vous dites' fileContent' est un tableau d'octets? – immibis

+0

@immibis ouais dans mon cas .. –

Répondre

2

Pour écrire un tableau d'octets à un OutputStream, appelez sa méthode write:

response.getOutputStream().write(fileContent); 

Aucune méthode d'aide requis.

+0

Je reçois l'exception 'org.eclipse.jetty.io.EofException' quand j'ai essayé ça ... –

2

La classe java.nio.file.Files contient plusieurs méthodes utilitaires pour copier des fichiers (nouveau depuis Java 7).

Par exemple:

Path path = Paths.get("C:\\Somewhere\\Somefile.txt"); 

Files.copy(path, response.getOutputStream()); 
+0

est-ce que cela fait vraiment l'affaire? J'ai juste besoin de copier le tableau d'octets pdf converti. Ce n'est pas un fichier chargé depuis n'importe quel endroit. –

0

Si vous devez vraiment le faire vous-même (je vous recommande fortement de ne pas le faire) alors quelque chose comme ça devrait fonctionner.

public static void copy(Reader in, Writer out) throws IOException { 
    final char[] buffer = new char[4096]; 
    int read; 
    do { 
    read = in.read(buffer, 0, buffer.length); 
    if (read > 0) { 
     out.write(buffer, 0, read); 
    } 
    } while (read >= 0); 
}