Bonjour,
Je voudrais savoir si c'est possible de changer la taille d'un fichier en java. Style j'ai un fichier de 10 mo et je change sa taille (le contenu ne change pas) pour que le système le voit comme faisant 8 mo, par exemple.
Bonjour,
Je voudrais savoir si c'est possible de changer la taille d'un fichier en java. Style j'ai un fichier de 10 mo et je change sa taille (le contenu ne change pas) pour que le système le voit comme faisant 8 mo, par exemple.
Salut,
Tu pourrais motiver cette idée, s'il te plaît ?
A plus,
Salut,
Je ne vois pas trop ce que tu veux dire, ça me parait impossible (quel que soit le langage d'ailleurs), la taille d'un fichier représente la taille de son contenu, donc si tu ne modifi pas le contenu, la taille ne change pas.
En compressant tu pourrais changer la taille d'un fichier mais ça modifi le contenu...
Ben en fait je sais pas trop, un copain m'as parlé de download en p2p ou il downloadait un fichier d'1Go et quand il ouvrait l'archive elle ne contient que 3 images de qq ko. Visblement ici, la taille du fichier est truquée je ne sais pas comment et c'est bien ça qui m'intriguait (d'ou le post), le pire c'est que selon ma connaissance, il download vraiment 1 go, mais du vide en quelque sorte.
Salut,
Ben l'inverse est possible (dans 1Go tu peux facilement stocker 3Ko de données utile et du blanc pour le reste (que des 0 par exemple).
Maintenant pour diminuer la taille d'un fichier tu ne peux que le compresser (et c'est plus ou moins possible selon le contenu).
a++
Si en C, cela est possible. En utilisant la fonction lseek, il est possible de se placer à une position arbitraire pour écrire quelque chose. Lorsqu'on ouvre le fichier, il n'y a rien que quelques données au début.Envoyé par gailuris
Si on regarde la taille du fichier:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <stdio.h> int main() { FILE * f =fopen("hole.txt","w"); fprintf(f,"Hello world!\n"); fseek(f,8192,SEEK_SET); fprintf(f,"Hello again!\n"); fclose(f); return 0; }
Et si on fait un cat:-rw-r--r-- 1 bob marley 8205 Mar 2 2006 hole.txt
Mais en java, je ne pense pas que ce soit possible.Hello world!
Hello again!
Jc
Par contre, effectivement, diminuer la taille pour faire croire qu'il prend moins de place est impossible. Si tu le tentes, tu vas finalement te prendre un mur parce qu'il y aura surement des écrasement de données...Envoyé par adiGuba
Donc pour résumé, on peut agrandir un fichier avec des trous mais on peut pas réduire la taille. Le système ne le permettrait pas...
Si : la classe RandomAccessFile te le permet... mais bon l'intérêt est plutôt limité (a moi de gérer le téléchargement de fichier par partie).Envoyé par fearyourself
a++
Et comment peut-on faire pour augmenter comme ça la taille d'un fichier ?
Je devrais écrire des 0 dans un flux ou il existe autre chose plus rapide ?
Avec la classe RandomAccessFile tu te place bien après la fin effective du fichier et tu écris un 0.Envoyé par HNT
Imagine que le fichier toto.txt fasse 10 octets à l'origine :
maintenant ton fichier toto.txt fait 1 Mega octet...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 RandomAccessFile raf=new RandomAccessFile("toto.txt",rw); raf.seek(1024); raf.writeByte(0); raf.close();
Merci beaucoup pour les renseignements.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager