Je travaille actuellement sur une liste de chaînes List<string>
datavalue qui contiennent des valeurs délimitées à l'intérieur, j'ai essayé de calculer pour le KB en utilisant cette fonction int strlen = Encoding.UTF8.GetByteCount(datavalues.ToString());
et je suis obtenir une valeur de 48 dans ma variable Strlen. Après avoir écrit la liste datavalue de la chaîne dans un fichier texte, la taille du fichier généré était de 2430 Ko. quelle est la différence quand vous avez la taille d'une liste de chaînes et quand vous l'écrivez? Y at-il des caractères ajoutés par la suite qui rendent le fichier de sortie grand?Différence entre KB avant d'écrire sur le fichier et Après avoir écrit sur le fichier
Répondre
A List<String>
(qui est ce que votre variable est datavalues
) affichera ce qui suit lorsque ToString
est appelé:
System.Collections.Generic.List [chaîne] (ou quelque chose comme ça)
D'une longueur approximative de 48 octets. Le contenu des chaînes ne sont pas inclus. Pour obtenir la pleine longueur, vous devez faire quelque chose comme:
String.Join("", dataValues.ToArray()).Length;
datavalues.ToString
est la représentation de chaîne de la liste elle-même. Si vous voulez la taille de toutes les chaînes dans la liste, vous pouvez faire quelque chose comme:
var len = datavalues.Sum(l => Encoding.UTF8.GetByteCount(l));
Ceci est très inexact. Suivre serait mieux
long size = 0;
object o = new object();
using (Stream s = new MemoryStream()) {
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(s, o);
size = s.Length;
}
Notez également que ma taille d'allocation de disque est 4096 octets.
fichier ne peut alloue de l'espace où file_content_size < = n * allocation_size.
Notez également que certains caractères en UTF8 sont stockés avec 1 octet et d'autres avec 6 octets!
- 1. Action après avoir écrit sur txt
- 2. Différence entre le fichier HDF5 et le fichier PyTables
- 3. Exécuter le programme avec l'appui sur entrer après avoir écrit le texte et enlever écrit
- 4. différence entre fichier enregistré et le fichier accessible par l'URL
- 5. Application écrit le fichier sur la carte SD interne, mais Windows ne voit pas le fichier
- 6. Quelle est la différence entre le fichier et le projet?
- 7. SQL Server 2008/SSIS: Guid a entre parenthèses après avoir été écrit dans un fichier texte
- 8. rechargeant app.config après avoir écrit
- 9. mmap écrit dans un fichier sur le disque (synchrone/asynchrone)
- 10. Actualisation de page avec un contenu incorrect après avoir écrit dans le fichier
- 11. Fermer le fichier Excel après avoir lu
- 12. sql server sauvegarder le fichier avant et après la restauration
- 13. iOS écrit dans un fichier sur le serveur Ubuntu
- 14. Comment vérifier si un fichier est écrit sur le terminal?
- 15. Différence entre le fichier, la classe et l'activité dans Android
- 16. Différence entre la classe Java et le fichier jar
- 17. Différence entre l'objet bitmap et le fichier bitmap?
- 18. Différence entre le fichier .ocx et un contrôle .Net
- 19. Différence entre% variable% et! Variable! dans le fichier batch
- 20. Différence entre le calque et le motif
- 21. C++. Après avoir écrit dans un fichier relatif, je ne peux pas afficher le contenu
- 22. ArrayIndexOutOfBoundsException écrit dans le fichier
- 23. Valider le code sur une branche spécifique après avoir écrit tout le code (git)?
- 24. texte pixélisé après avoir écrit sur l'image avec CGContextShowTextAtPoint
- 25. Quelle est la différence entre le fichier .cfg et le fichier .xml?
- 26. Quelle est la différence entre le fichier app.config et le fichier XYZ.settings?
- 27. Quelle est la différence entre le fichier mysql.log et le fichier mysqld.log?
- 28. quelle est la différence entre le fichier .sqlite et le fichier .db?
- 29. Swing composant pour ouvrir un fichier existant, puis après avoir enregistré le fichier enregistrer le fichier
- 30. Impossible de lire le fichier après l'avoir écrit
Je crois que c'est ceci http://stackoverflow.com/questions/15470787/please-help-me-understand-size-vs-size-on-disk – Mashton
Lorsque vous appelez ToString sur une liste, il va donner vous "System.Collections.Generic.List'1 [System.String]" qui est de 48 octets en UTF8. –
C'est le nom du type. Bien sûr, "System.Collections.Generic.List'1 [System.String]" a une longueur de 48 octets. N'a rien à voir avec la taille des chaînes dans la liste bien sûr. –