2013-08-21 2 views
0

J'ai une variable, inFileName de type JFileChooser.inputStreamReader ne reconnaît pas le type JFileChooser

J'ai appelé cette variable à la méthode HexFinder en classe checksumFinder. Il doit être utilisé dans inputStreamReader à l'intérieur d'un BufferedReader. (J'utilise cette ligne pour l'appeler)

cf.HexFinder(inFileName,null,null,null); 

Cela provoque une erreur que l'InputStreamReader accepte uniquement des variables de type String. (Voici mon code pour le BufferedReader)

BufferedReader reader = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream(inFileName))); 

Est-il possible que je puisse obtenir le InputStreamReader à lire dans infilename? Si non, comment puis-je résoudre cela? Toute aide est très appréciée.

Répondre

3

Si vous essayez de lire un fichier choisi par un JFileChooser, vous pouvez effectuer les opérations suivantes;

File file = inFileName.getSelectedFile(); 
BufferedReader reader = new BufferedReader(new FileReader(file)); 

Notez que FileReader utilise le codage de caractères par défaut. Vous pouvez spécifier manuellement l'encodage comme ceci;

String charset = "UTF-8"; 
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), charset));