2017-10-09 1 views
0

Je dois lire un fichier yaml et obtenir le contenu de celui-ci à un String.Comment lire un fichier yaml à une chaîne avec l'indentation correcte

Comme le format yaml nécessite l'indentation correcte, je dois obtenir le contenu exact comme dans le fichier. La façon normale de lire un fichier dans java ne fonctionne pas pour moi. Donc si quelqu'un peut me dire comment lire le contenu d'un fichier yaml en une variable String.

Encore une fois la question est,

Comment lire le contenu d'un fichier YAML avec l'indentation et des espaces et obtenir le contenu du fichier dans une variable String en java? En d'autres termes, j'ai besoin du contenu du fichier yaml comme dans une variable String.

+0

Quelle est "la manière normale de lire un fichier en Java"? – Henry

+0

En utilisant un BufferReader et un FileReader, cette méthode lit simplement le fichier ilne par ligne. Je pouvais l'imprimer avec la bonne indentation, mais je ne pouvais pas obtenir le contenu d'une chaîne. – Agent47

+0

Vous pouvez concaténer ces lignes, mais il est probablement plus facile de ne pas lire les lignes mais les blocs de caractères et de les placer dans un StringBuilder. – Henry

Répondre

0

De toute façon, vous l'avez compris, mais voici le code pour une indentation correcte.

package test; 

import java.io.BufferedReader; 
import java.io.FileReader; 

public class test { 
    private static String FILENAME = "input.txt"; 

    public static void main(String[] args) { 
     BufferedReader br = null; 
     FileReader fr = null; 
     StringBuffer stringBuffer = new StringBuffer(); 
     try { 
      fr = new FileReader(FILENAME); 
      br = new BufferedReader(fr); 
      String sCurrentLine; 

      while ((sCurrentLine = br.readLine()) != null) { 
       stringBuffer.append(sCurrentLine); 
       stringBuffer.append("\n"); 

      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       br.close(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
     System.out.println(stringBuffer); 
    } 
} 
+0

Oui, c'est ce que j'ai fait, merci quand même. :-) – Agent47