J'ai l'impression que c'est une mauvaise pratique de stocker un fichier dans une chaîne. Existe-t-il une autre façon de faire cela, parce que je veux comparer une liste de clés et faire un indexOf (clé) sur le fichier. La clé pourrait être n'importe où dans le fichier.Stocker un fichier dans une chaîne
Répondre
Vous pouvez utiliser un BufferedReader pour tirer dans les données d'un morceau à la fois:
BufferedReader reader = new BufferedReader(
new FileReader(file));
char[] buf = new char[1024];
int numRead=0;
while((numRead=reader.read(buf)) != -1){
String readData = String.valueOf(buf, 0, numRead);
...
et tester chaque petite chaîne. Vous auriez besoin de garder une trace de l'index, mais cela utiliserait beaucoup moins de mémoire.
Je tapais juste la même chose. Téléphone stupide :) –
Un String
devrait être très bien tant qu'il tient dans la mémoire sans problèmes.
Une encore meilleure options est peut-être de faire un passage sur le fichier et stocker les clés dans un HashSet
, ou dans un HashMap
mappage par exemple les mots-clés à leurs décalages dans le fichier.
ou utiliser la hashmap pour mapper les hashs (raccourcis) des clés avec les décalages potentiels –
Si vos fichiers sont volumineux et que vous tentez uniquement d'effectuer une opération indexOf, il peut être préférable de charger le fichier en mémoire par étapes. Définir un tampon approprié sur un BufferedReader, puis lire dans le tampon. Effectuez votre opération indexOf. Si cela échoue, répétez cette opération, mais ajoutez la taille du nombre de caractères que votre tampon lit à la valeur de retour de la fonction indexOf.
Selon la raison pour laquelle vous utilisez le fichier de cette manière, cela peut être une mauvaise pratique. Mais, généralement, ce n'est pas le cas.
Si vous utilisez le fichier en tant que fichier de propriétés glorifié, vous devrez peut-être reformater le texte dans le fichier et le lire en tant que fichier de propriétés.
Si vous pouviez stocker les clés et les valeurs dans une base de données, cela serait une meilleure solution que de rechercher une chaîne.
Mais si vous avez un fichier texte que vous cherchez à trouver s'il contient certains mots-clés, alors vous utilisez déjà la solution la plus simple.
- 1. Java stocker le contenu du fichier XML dans une chaîne
- 2. Stocker une chaîne dans une variable dans un fichier de classe
- 3. comment stocker une chaîne dans un tableau ou une séquence?
- 4. Comment stocker chaque valeur dans une chaîne?
- 5. Comment stocker une chaîne dans une étiquette de chaîne
- 6. comment stocker une valeur Iterator dans une chaîne dans android
- 7. Comment stocker un fichier enregistré dans une matrice?
- 8. Comment stocker un nombre/chaîne dans R.string.xx?
- 9. Stocker une chaîne comme dans php
- 10. iOS: impossible de stocker une chaîne dans un tableau
- 11. Comment stocker une chaîne vide dans un vecteur
- 12. Comment stocker un texte de tableaux char dans une chaîne?
- 13. Comment stocker une variable dans un fichier dans Matlab
- 14. Stocker la chaîne JSON statique dans une chaîne
- 15. Comment télécharger un fichier sur HTTP et stocker son contenu dans une chaîne en Java
- 16. Comment stocker une chaîne à partir d'un fichier texte dans un tableau en C
- 17. stocker la chaîne localisée dans le fichier resx?
- 18. trouver une chaîne dans un fichier
- 19. Écrire une chaîne binaire dans un fichier
- 20. Comment marquer une chaîne dans un fichier?
- 21. PHP recherchant une chaîne dans un fichier
- 22. comment stocker un fichier Jpeg dans une base de données?
- 23. Comment stocker un fichier MP3 dans une base de données?
- 24. Comment stocker une liste de fichiers dans un fichier texte?
- 25. Stocker des variables dans un fichier public
- 26. Comment stocker SharedPreferences dans un fichier?
- 27. C# stocke une variable chaîne dans un fichier texte .txt
- 28. Comment stocker un fichier zip dans MySQL?
- 29. Meilleure façon de stocker une chaîne dans une application iPhone?
- 30. trouver une chaîne dans un fichier gzippé dans un dossier
Pourquoi pensez-vous que c'est une mauvaise pratique? Cela me semble raisonnable. Les fichiers sont-ils très gros (ou très nombreux)? – DNA
Par fichier dans une chaîne, vous voulez dire "texte tiré d'un fichier", non? – jzd
Une autre façon de faire QUOI? Quel est le moyen de chercher des alternatives? – khachik