2017-05-07 51 views
0

我目前正在为我和我的朋友编写一个Java应用程序,并且包含一个大问题... 当我尝试读取txt文件时,它会打印出具有奇怪字符的行并且每个caracter都由一个空格分隔。 我tryed在不同的文件夹中的多个TXT文件和打印我同样的事情,每次...(我tryed做一个扫描仪和一个BufferedReader的代码,它仍然是同样的问题文件读取中每个caracter之间的Java空格

这里是我的代码:

   BufferedReader br = new BufferedReader(new FileReader(_file)); 

       String website = ""; 
       String username = ""; 
       String password = ""; 
       int usedTimes = 0; 

       String currentLine; 
       while ((currentLine = br.readLine()) != null) { 

        if(currentLine.startsWith("Web Site")) website = currentLine.split(":")[1]; 
        else if(currentLine.startsWith("User Name")) username = currentLine.split(":")[1]; 
        else if(currentLine.startsWith("Password")) password = currentLine.split(":")[1]; 
        else if(currentLine.startsWith("Password Use Count")) 
        { 
         usedTimes = Integer.parseInt(currentLine.split(":")[1]); 
         passwords.add(new Password(website, username, password, usedTimes)); 

         website = ""; 
         username = ""; 
         password = ""; 
         usedTimes = 0; 
        } 
       } 
       br.close(); 

下面是一个例子输出:(我不能复制/粘贴输出,所以我把图片) enter image description here

所以,如果你们谁知道答案,请告诉我,这将是巨大

非常感谢您阅读本文,直到这里! Julien。

+0

你没有显示任何输出内容的代码。请告诉我们输出完成的地方。 – Marvin

+0

哦,是的,我只是添加了一个system.out.println(currentLine);在线 – Julien

回答

0

它可能是编码问题。你必须检查文本文件的编码,然后你必须像这样尝试: BufferedReader r = new BufferedReader(new InputStreamReader(“ISO-XXXXX”))

+0

下哦谢谢,但我不明白我必须放置它?像这样 – Julien

+0

BufferedReader br = new BufferedReader(new FileReader(_file),new InputStreamReader(“ISO-XXXXX”)); – Julien

+0

只需将其替换为BufferedReader变量声明 BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(_file),“ISO-XXXXX”)); 但是,不要忘记你首先要检查文本文件的编码,并用它来代替“ISO-XXXXX” –