读取数组java中的文件

时间:2013-12-09 21:18:15

标签: java string io

这里我的IO有问题。字符串ext []只读取txt文件中的最后一个条目,在这种情况下只有jpg。 我想阅读所有,但它只读取最后我必须在构造函数中保留此代码 请指出错误 提前致谢

    /////Text file format 
      txt
      png
      jpg

  ///// file reading code

 String  line;
//// constructor 
  public MainFrame(){
    initComponents();
    fileChooser=new JFileChooser();
  try {
    Scanner in = new Scanner(new FileReader("ext.txt"));
     while (in.hasNextLine()) {
          line = in.nextLine(); 
        } System.out.println(line);
           String ext[] = line.split("\\n"); /// can't read all the strings from file.

     FileNameExtensionFilter filter = new FileNameExtensionFilter("TEXT FILES",ext); 
    fileChooser.setFileFilter(filter);} 
  catch(IOException io){

  }
  }

2 个答案:

答案 0 :(得分:1)

您的问题出在String ext[]

每次循环时都会覆盖变量ext[]。我认为你应该这样做:

try {
ArrayList<String> ext = new ArrayList<String>();
Scanner in = new Scanner(new FileReader("ext.txt"));
 while (in.hasNextLine()) {
      line = in.nextLine(); 
    } System.out.println(line);
       ext.append(line.split("\\n")); 

你可能需要做一些语法工作,因为我没有在java中工作过一段时间,但我认为这是对的

答案 1 :(得分:0)

在java中逐行读取文件通常使用BufferedReader完成。因此,您也可以处理异常,并在阅读后始终关闭文件。

以下是我的一个例子,但我强烈建议您阅读有关使用文件的更多信息。一个很好的开始是oracle文档(http://docs.oracle.com/javase/tutorial/essential/io/file.html

//a collection that stores the lines
List<String> lines = new ArrayList<String>()
BufferedReader buf = null;
try{
    buf = new BufferedReader(new FileReader(file));
    String line = null;

    while((line = buf.readLine()) != null){
        lines.add(line);
    }
//if something goes wrong   
catch(IOException ex){
    ex.printStackTrace();
}
finally{
    //closing the buffer, so that the file isnt locked anymore
    if(buf != null)
       buf.close();

}