La lecture d'un onglet séparé fichier en Java
J'ai le morceau de code suivant pour lire un onglet séparé fichier en Java:
while ((str = in.readLine()) != null) {
if (str.trim().length() == 0) {
continue;
}
String[] values = str.split("\\t");
System.out.println("Printing file content:");
System.out.println("First field" + values[0] + "Next field" + values[1]);
}
Mais c'est l'impression 1 à la place du fichier de contenu. Quel est le problème ici?
Une ligne à partir de l'exemple de fichier se lit comme suit:
{Amy Grant}{/m/0n8vzn2}{...}
- Quelle est la chaîne de texte que vous êtes fractionnement?
- Pourriez-vous s'il vous plaît ajouter un fichier d'exemple?
- Il y a beaucoup de TSV et CSV analyseur de bibliothèques - je vous conseille fortement d'utiliser l'un d'eux au lieu de rouler votre propre.
- Vous pouvez écrire tout
\t
. - Voici un exemple de ligne: Amy Grahm /m/010h /m/0djb3s9,/m/0crr_xl,/m/0crtkkm,/m/0crxm5d
- Qui ne fonctionne pas non plus.
- Essayez
System.out.println(Arrays.asList(values));
- Etes-vous sûr que le fichier est séparé par des tabulations?
- Skeet: pouvez-vous svp m'indiquer une bibliothèque?
- Pouvez-vous nous montrer où les onglets sont à l'aide de la question d'origine? Ils n'apparaîtront pas dans un commentaire.
- Je soupçonne que votre problème ne sera pas résolu en utilisant une autre bibliothèque.
- Cela fonctionne! Mais j'ai besoin d'accéder aux champs séparément. Pourriez-vous plesae me dire quelle est la tordre dans mon code?
- Quelle est l'erreur exacte que vous obtenez?
Vous devez vous connecter pour publier un commentaire.
Je soupçonne que vous obtenez une
IndexOutOfBoundsException
. L'erreur que vous obtenez est important et vous ne pouvez pas espérer résoudre le problème si vous l'ignorer.Cela signifie que vous avez seulement un ensemble de champs.
Écrire
\t
au lieu de\\t
. Ce serait plus de ce que vous voulezJe suis en utilisant http://sourceforge.net/projects/opencsv/ dans certains de mes projets, et il fait le travail très bien.
\t
pas sur un onglet.