(Je sais que mon titre est très vague car je ne sais vraiment pas comment le décrire)
La cause du problème est qu'une application Android a été développée en Java. L'une des fonctions consiste à utiliser FileWriter pour écrire des données int dans un fichier de données. Ce fichier de données est créé à l'aide de la méthode createNewFile(String filename) de File, et les données écrites dans le fichier sont toutes de type int. (Méthode write(int) de FileWriter)
Pour faciliter le traitement ultérieur, chaque segment de données du fichier de données est divisé par 4 (int)-1 (écrit devant chaque segment de données). Logiquement parlant, les 16 premiers octets de ce fichier devraient être ff. Mais le fichier de données réel ressemble à ceci :
Je vois des problèmes familiers, tels que des erreurs d'encodage UTF8, mais je ne comprends pas très bien pourquoi il y a des erreurs d'encodage si int est écrit en utilisant write et qu'il n'écrit pas de chaîne dans le fichier.
Je voudrais donc demander à tout le monde, que dois-je faire dans cette situation (fichier de données purement int) ? Existe-t-il un autre moyen de lire les données ?
Merci d'avance !
La méthode Write(int) de FileWrite ne peut pas écrire de fichiers int purs car l'int ici est en fait un caractère char. Lorsque vos données int ne trouvent pas la valeur char correspondante dans la table de code Unicode, des caractères tronqués apparaîtront. Vous pouvez fournir une méthode toString pour la convertir en chaîne
Si vous souhaitez écrire de vraies données int