String Total="";
String Temp="";
JFileChooser filechoose=new JFileChooser();
filechoose.setFileFilter(new TxtFilter());
panel.PaintMyPanel(Temp);
int result=filechoose.showOpenDialog(MyInterface.this);
try
{
if(result==JFileChooser.APPROVE_OPTION)
{
FileName=filechoose.getSelectedFile().getPath();//将文件名保存到FileName成员变量中。

  //FileInputStream fileinput=new FileInputStream(FileName);

//DataInputStream din=new DataInputStream(fileinput);

File file = new File(FileName);
FileReader fi=new FileReader(file);//文件字符流
BufferedReader fin=new BufferedReader(fi);//字符流缓冲
Temp=fin.readLine();


while(Temp!=null)
{   



temp=din.readLine();

   

// panel.revalidate();
}

    }
catch( IOException e)
{


}上面代码为什么一执行就卡死,貌似出现异常

解决方案 »

  1.   

    用DataInputStream也不行,求救高手!
      

  2.   

    temp=din.readLine();
      

  3.   

    不是这个,我试用了2个方案,贴的时候弄混了,没有语法毛病的
    方案1:           File file = new File(FileName);
                    FileReader fi=new FileReader(file);//文件字符流
                      BufferedReader fin=new BufferedReader(fi);//字符流缓冲
                      Temp=fin.readLine();
                                   
                    while(Temp!=null)
                    {
                    Total+=temp;
                    temp=fin.readLine();                                                         
                    }方案2:         
                    FileInputStream fileinput=new FileInputStream(FileName);            
                    DataInputStream din=new DataInputStream(fileinput);
                      Temp=din.readLine();
                                   
                    while(Temp!=null)
                    {
                    Total+=temp;
                    temp=din.readLine();                                                         
                    }
         
      

  4.   

    大哥,你的Temp肯定不是null,While循环不会停,当然死了
    你这么写
    while(true){
       Temp=fin.readLine();
       if(Temp==null) break;
       //然后再进行你要的处理
    }
      

  5.   

    大哥,不知道也别乱说好不,我虽然初学JAVA,但是学C++还是有相当时间了的,还不至于有这种。现在发现点问题了,发现英文文档可以读,但是遇到中文就卡死。
      

  6.   

                    while(Temp!=null)
                    {   
                        
                    
                
                    temp=din.readLine();
                                
                   
                
                //    panel.revalidate();
                }
    这里出现死循环。
    temp=fin.readLine();  
      

  7.   

    现在读取和保存相关代码如下:
    FileName=filechoose.getSelectedFile().getPath();//将文件名保存到FileName成员变量中。
    File file = new File(FileName);
    FileReader fi=new FileReader(file);//文件字符流
    BufferedReader fin=new BufferedReader(fi);//字符流缓冲
    fin.toString();
    Temp=fin.readLine();


    while(Temp!=null)
    {   
    Total+=Temp;
    Temp=fin.readLine();
    }
    [code=Java]
            MyPanel.textarea.setText(Total);
            panel.revalidate();//面板重绘
    FileName=filechoose.getSelectedFile().getPath();//将文件名保存到FileName成员变量中。

    FileOutputStream fileoutput=new FileOutputStream(FileName);
    String temp="";
    DataOutputStream dout=new DataOutputStream(fileoutput);
    dout.writeChars(MyPanel.textarea.getText()); [/code]
    现在问题是:可以将写的英文字符保存,但是用记事本打开文件可以看到每个英文字母前面都有一个空格,然后再将刚才保存得文件用程序打开,可以看到每个英文字母前面的空格变成了小方格;再一个就是不能打开中文文档,否则程序当死。