Je suis l'un des développeurs sur une plate-forme qui, entre autres fonctionnalités, permet aux utilisateurs de télécharger des fichiers de données (à partir de sources disparates) pour le traitement avec différents scripts.Y a-t-il un FilterInputStream pour convertir r à la nouvelle ligne du système local?
Un problème persiste avec les fichiers de données séparés par des onglets d'Excel pour Mac. Excel pour Mac (même OS X) termine ses lignes avec des caractères CR (\ r); la norme Linux (et moderne Mac) est LF (\ n). (Windows est CR LF, alias \ r \ n.) Les scripts s'exécutent sur une machine Linux, donc ils ne parviennent absolument pas à identifier les caractères simples comme terminateurs de ligne. Sur le backend, nous introduisons un InputStream dans un nœud JCR via son API habituel. Je voudrais un FilterInputStream qui fait la conversion de flux de ligne pour nous. Ce n'est pas beaucoup de code pour l'écrire nous-mêmes, mais c'est pour les cas évidents; S'il y a une bibliothèque en conserve pour le faire, nous préférerions beaucoup cela, en espérant que d'autres personnes auront travaillé sur les conditions de pointe pour nous. Y a-t-il une bibliothèque open-source qui convertit pratiquement tous les formats de saut de ligne standard en LF (ou le caractère de saut de ligne système) dans un FilterInputStream ou un autre InputStream? Quelques recherches sur Google n'ont rien révélé d'évident, mais je serais étonné s'il n'y avait pas quelque chose.
Si ce n'est pas le cas, quelles sont les conditions de bord susceptibles de me tirer dans le pied en l'écrivant?
Si vous pouvez trouver un moyen de faire en sorte que tous ces programmes Darwin ** cessent d'utiliser MacRoman ** et cessent d'émettre CR pour les sauts de ligne, le monde chantera sûrement des chansons de vos enfants jusqu'aux enfants de vos enfants. Puissent-ils émettre des UTF-8 avec des sauts de ligne de NL, et qu'ils maintiennent leur héritage brisé en suspens pour toujours. ** AMEN ** – tchrist