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文件";
}
}
----------------解决方案--------------------------------------------------------
哪里不明白?
----------------解决方案--------------------------------------------------------
就是这里面的程序出错了,但我感觉又好像没错
----------------解决方案--------------------------------------------------------
帮你改了一下..自己慢慢看..
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不成立的话,他就没有被赋值了
如果你下面有一句一定会执行的赋值语句,它就不会报错了
----------------解决方案--------------------------------------------------------
学习,学习!~
----------------解决方案--------------------------------------------------------