Lors du portage d'un programme Java sur Cocoa, j'ai rencontré le programme utilisant java.io.Reader et ses sous-classes. Je ne suis pas très familier avec ce qu'ils font, donc je ne peux pas trouver un bon remplacement. Est-ce que quelqu'un a de bonnes recommandations sur les remplacements ou dois-je le réécrire?Cocoa équivalente aux classes Java de Java
Répondre
Les lecteurs Java ne sont que des versions "objectivées" des opérations de lecture de fichiers blocs. En Objective C, vous avez accès à la bibliothèque C. Cela vous donne fopen, fread, fclose, qui sont des fonctions pour lire les fichiers de données brutes bloc par bloc. N'est-ce pas tout ce qui est vraiment nécessaire? Ensuite, si vous avez besoin de lire des entiers par exemple, vous venez de convertir les blocs de données (void *) en (int *).
Vous pourriez soutenir qu'un lecteur Java est plus abstrait. Oui, il y a des sous-classes pour lire des choses de n'importe où, pas seulement des fichiers. Mais si vous portez un programme existant, vous savez déjà si la source de données est un fichier ou non.
Les classes Java de Java traitent les difficultés de travailler avec des caractères multi-octets. Ce n'est pas aussi simple que de tirer un tampon d'octets à la fois, puis de les convertir en NSStrings. – TJez
@ TroyJ Je pense que NSString a initWithBytes: length: encoding: juste pour ça. –
Jetez un oeil à http://stackoverflow.com/questions/25552673 pour voir combien de travail est impliqué juste pour obtenir cette méthode à se comporter utilement lors de la diffusion. Reader gère également le préfixe de flux unicode pour détecter automatiquement le codage. Le lecteur et les sous-classes sont juste un ensemble très simple et puissant de classes. Je suis vraiment choqué rien comme ça existe même dans les bibliothèques de tiers. – TJez
- 1. Modèle SQLite aux classes JAVA
- 2. accéder aux variables dans d'autres classes (Java)
- 3. Java reflétant les sous-classes
- 4. unix "quel java" commande équivalente sur Windows?
- 5. Collection Java/carte méthode d'application équivalente?
- 6. S # architecture arp équivalente en Java
- 7. Fonction équivalente à C "_getch()" en Java?
- 8. Problème d'accès aux classes Java depuis l'extension Firefox de Firefox
- 9. Java Classes en classes C#
- 10. Java, exceptions spécifiques aux classes et exceptions standard
- 11. Comment accéder aux classes java dans un sous-dossier
- 12. Java équivalent RMI dans Cocoa?
- 13. Java AOT + chargement dynamique des classes java
- 14. Branchement aux compilateurs Java
- 15. classes Java Inner
- 16. Classes dépendantes en Java
- 17. Classes d'arbres Java
- 18. classes partielles Java
- 19. classes Java Enumeration
- 20. Objet Java aux éléments XML?
- 21. Java Classes dans la programmation de jeux?
- 22. Test de classes Java avec EasyMock Framework
- 23. Tomcat 6.0.26 cache Java classes
- 24. Java Aide: Utilisation des classes
- 25. Java classes internes dans C#
- 26. Java classes et méthodes Question
- 27. Classes utilitaires en programmation Java
- 28. Authentification Windows intégrée équivalente pour Java et Linux
- 29. compilation Java avec 2 classes
- 30. Avantage des classes locales Java
La plupart d'entre nous ne savons plus ce qu'est un java.io.Reader que vous, ce qui signifie que nous ne pouvons en aucun cas suggérer un équivalent. Vous devriez * directement * décrire ce que vous voulez; alors seulement pouvons-nous recommander quelque chose qui le fournit. –
Merci. Je vais devoir fouiller dans le code pour trouver comment ils l'utilisent. J'espérais changer leur code le moins possible pour éviter les bugs, mais il n'y a pas moyen de contourner ça ici. – CajunLuke
@Peter Hosey - un Java a à I/O construit: Streams et lecteurs. Les flux fonctionnent avec des données binaires. Les lecteurs fonctionnent avec des données de caractères (unicode et codages). Comme NSStrings, tous les caractères Java sont UTF-16. Avec les lecteurs, il est trivial, par exemple, d'ouvrir un fichier et de lire 5 "caractères", et le lecteur fait tout le codage et le décodage pour vous. NSString ne vous donne pas cela, et il ne semble pas y avoir un ensemble équivalent de fonctions de bibliothèque dans les frameworks Apple. –