web-dev-qa-db-fra.com

Écrire l'octet [] dans le fichier en Java

Comment convertir un tableau d'octets en fichier en Java?

byte[] objFileBytes, File objFile
28
farajnew

Un objet fichier ne contient pas le contenu du fichier. Ce n'est qu'un pointeur vers le fichier sur votre disque dur (ou tout autre support de stockage, comme un SSD, un lecteur USB, un partage réseau). Je pense donc que ce que vous voulez, c'est l'écrire sur le disque dur.

Vous devez écrire le fichier en utilisant certaines classes dans l'API Java

BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(yourFile));
bos.write(fileBytes);
bos.flush();
bos.close();

Vous pouvez également utiliser un Writer au lieu d'un OutputStream. L'utilisation d'un écrivain vous permettra d'écrire du texte (String, char []).

BufferedWriter bw = new BufferedWriter(new FileWriter(yourFile));

Puisque vous avez dit que vous vouliez tout garder en mémoire et que vous ne vouliez rien écrire, vous pourriez essayer d'utiliser ByteArrayInputStream. Cela simule un InputStream, que vous pouvez transmettre à la plupart des classes.

ByteArrayInputStream bais = new ByteArrayInputStream(yourBytes);
84
Martijn Courteaux
public void writeToFile(byte[] data, String fileName) throws IOException{
  FileOutputStream out = new FileOutputStream(fileName);
  out.write(data);
  out.close();
}
24
Caner

Utilisez un FileOutputStream.

FileOutputStream fos = new FileOutputStream(objFile);
fos.write(objFileBytes);
fos.close();
5
perp

Ok, vous l'avez demandé:

File file = new File("myfile.txt");

// convert File to byte[]
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(file);
bos.close();
oos.close();
byte[] bytes = bos.toByteArray();

// convert byte[] to File
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bis);
File fileFromBytes = (File) ois.readObject();
bis.close();
ois.close();

System.out.println(fileFromBytes);

Mais c'est inutile. Veuillez préciser ce que vous essayez de réaliser.

4
Adriaan Koster

Voir Comment rendre PDF dans Android . Il semble que vous n'ayez pas d'autre option que d'enregistrer le contenu dans un (temporaire) sur le fichier SD afin d'être capable de l'afficher dans la visionneuse pdf.

1
pap