J'ai un fichier image personnalisé où le premier bloc de données est méta-données ASCII. Je dois être capable de lire cette partie méta-données ASCII du fichier avec Java et savoir quand elle se termine, et quand les 'données d'image brutes' dans un autre encodage commencent. Je pensais lire tout le fichier dans un octet [], et ensuite commencer à en lire les octets et les convertir en ASCII jusqu'à ce que j'atteigne la fin de la section des méta-données ASCII, à quel point Je stockerais ces données. Ensuite, je pourrais simplement réorganiser les données binaires brutes dans un ordre différent tel quel (aucune lecture nécessaire). Cependant, la seule façon de le faire serait de lire les données ASCII octet par octet et de rechercher de nouvelles lignes, et de tout concaténer avant une nouvelle ligne et de voir si c'est la balise qui signifie le début de la données d'image brutes. Cependant, il doit y avoir une meilleure façon de lire la partie ascii du fichier avec readLine() et ensuite pouvoir commencer immédiatement avec le binaire de l'image brute sans avoir besoin de rouvrir le fichier dans un nouveau lecteur et aller à la ligne où dans le autre lecteur, j'ai trouvé la balise "commencer l'image".Comment puis-je lire proprement un fichier avec ASCII et un autre encodage en Java?
Des idées?
cela fonctionnera-t-il si ma balise "begin image" est réellement celle-ci: {END} Cela serait de 5 octets; cette méthode me permet-elle de rechercher des chaînes de plusieurs octets? – sepiroth
Oui, bien sûr. Cela rend la recherche plus complexe. Regardez la page lings to wikipedia sur les algorithmes de recherche de chaînes, ou utilisez la classe Scanner. –
@michael: J'essaie la route 'scanner' (bien, BufferedReader, de toute façon). J'ai du mal à obtenir FileInputStream pour commencer à saisir des octets où BufferedReader.readLine() est désactivé (je lis la première ligne, puis récupère l'octet suivant, mais l'octet suivant n'est pas correct). Vous avez une idée de ce qui ne va pas? – sepiroth