当前位置: 代码迷 >> Java相关 >> 对File类的使用不明白
  详细解决方案

对File类的使用不明白

热度:130   发布时间:2006-12-27 12:17:40.0
对File类的使用不明白

import java.awt.*;
import java.io.*;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
public class test extends JFrame
{

static int result;
static JFileChooser jf;

public test()
{
Container cp=getContentPane();
jf=new JFileChooser();
jf.setFileFilter(new FFT());


result=jf.showOpenDialog(null);
setSize(400,400);
setVisible(true);

}
public static void main(String[]args)
{

String name;
test ap=new test();
ap.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

if(result == JFileChooser.APPROVE_OPTION)
{
File file = jf.getSelectedFile();
}

try{
FileInputStream f=new FileInputStream(file);
int d=f.read();
while(f.read()!=-1)
{
char c=(char)d;
d=f.read();
System.out.print(c);
}
}
catch(IOException ex)
{
}

}
}
class FFT extends FileFilter
{
public boolean accept(File f)
{
if(f.getPath().endsWith(".txt")||f.isDirectory())
return true;
else
return false;
}
public String getDescription()
{
return "txt文件";
}
}

搜索更多相关的解决方案: File  

----------------解决方案--------------------------------------------------------
哪里不明白?
----------------解决方案--------------------------------------------------------
就是这里面的程序出错了,但我感觉又好像没错

----------------解决方案--------------------------------------------------------

帮你改了一下..自己慢慢看..

import java.awt.*;
import java.io.*;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
public class test extends JFrame
{
static int result;
static JFileChooser jf;

public test()
{
Container cp=getContentPane();
jf=new JFileChooser();
jf.setFileFilter(new FFT());


result=jf.showOpenDialog(null);
setSize(400,400);
setVisible(true);

}
public static void main(String[]args)
{

String name;
test ap=new test();
ap.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
File file = null;
if(result == JFileChooser.APPROVE_OPTION)
{
file = jf.getSelectedFile();
try{
FileInputStream f=new FileInputStream(file);
int d=f.read();
while(f.read()!=-1){
char c=(char)d;
d=f.read();
System.out.print(c);
}
}catch(IOException ex){}
}

}
}
class FFT extends FileFilter
{
public boolean accept(File f)
{
if(f.getPath().endsWith(".txt")||f.isDirectory())
return true;
else
return false;
}
public String getDescription()
{
return "txt文件";
}
}


----------------解决方案--------------------------------------------------------
谢谢,为什么要先给File file=null赋空值啊
----------------解决方案--------------------------------------------------------

因为file是局面变量,你在使用前必须显式的赋值,哪怕赋给一个null值也可以

否则的话,你还编译都过不了,并且给变量赋初值也是一个很好的编程习惯


----------------解决方案--------------------------------------------------------
我下面不是给它赋值了吗?可是其它变量,不用这样啊,还是这个比较特殊;
----------------解决方案--------------------------------------------------------
下面不一定给它赋值了,因为你下面有一个if,如果if不成立的话,他就没有被赋值了

如果你下面有一句一定会执行的赋值语句,它就不会报错了
----------------解决方案--------------------------------------------------------
学习,学习!~
----------------解决方案--------------------------------------------------------
  相关解决方案