求大神帮忙看下关于java局部变量未初始化的问题
  else if(e.getSource()==savedia){
             String fname="error.txt",fcontent;
             FileOutputStream fout;
             File floc;
             SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
             try{
                 fname=new String(JOptionPane.showInputDialog(dia, "请输入想保存为的文件名称"));
                 floc=new File("D:\\java 日记本",fname);
                 fout=new FileOutputStream(floc);
                 fcontent="\t\t"+title1.getText()+"\n\t\t\t天气:"+weather.getText()+"\n\t\t\t"+df.format(new Date())+"\n    "+maintext.getText();
                 fout.write(fcontent.getBytes());
                 fout.close();
                 System.out.println("保存成功");         
             }
             catch(Exception e1){
                 e1.printStackTrace();
             }
             try{
                 int x;
                 RandomAccessFile rf=new RandomAccessFile(_**floc**_,"rw");
                 byte[] rb=new byte[(int)floc.length()];
                 rf.read(rb);
                 for(x=0;x<rb.length;x++){
                     rb[x]=(byte)(~rb[x]);
                 }
                 rf.seek(0);
                 rf.write(rb);
                 rf.close();
                 System.out.println("加密成功!");
             }
             catch(Exception e2){
                 e2.printStackTrace();
             }
         }

斜粗体的局部变量floc会有可能尚未初始化的错误,求大神解决

7个回答

FileOutputStream fout = null;
File floc = null;

File floc = null哒

那你 File floc = null; 呗

File floc = null ;

现在你是在try代码块中给floc赋值的,但是try是有可能异常的,就是说floc可能初始化失败,后面又直接用到该变量,那么自然应该先初始化了,File floc = null ;即可

java中局部变量必须初始化,你可以给他一个null引用啊

File floc = null了 求关注

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!