【问题标题】:File array initialization Error :Variable might not be initialized文件数组初始化错误:变量可能未初始化
【发布时间】:2014-11-03 10:58:22
【问题描述】:
  • 在这个函数中,我试图将文件从一个位置复制到 将创建特定文件夹的另一个指定位置和 模式匹配文件将被复制到该单个文件夹中。

    public static void matchFileNames(List filesList,List fileTest){
                            String inputVal;
                            File[] tempDir; 
                            String tempFileName;
                            int l=0;
                            for (int i=0;i<filesList.size();i++){
                                    inputVal=filesList.get(i).toString();
                                        for(int k=0;k<fileTest.size();k++){
                                        String fileName=fileTest.get(k).toString();
                                            if (isMatching(fileName,inputVal)){
                                                tempFileName="D:\\Mass\\Dest"+"\\"+inputVal;
                                            try {
                                                tempDir[l]=new File(tempFileName);
                                                if(l==0){
                                                    tempDir[l++].mkdir();
                                                    copyFileContents(new File("D:\\Mass\\Auto"+"\\"+fileName+".txt"),new File("D:\\Mass\\Dest"+"\\"+tempFileName+"\\"+fileName+".txt"));
                                                }
                                                if (!tempDir[l].exists()){
                                                    tempDir[l++].mkdir();
                                                    copyFileContents(new File("D:\\Mass\\Auto"+"\\"+fileName+".txt"),new File("D:\\Mass\\Dest"+"\\"+tempFileName+"\\"+fileName+".txt"));
                                                }
                                                else
                                                    copyFileContents(new File("D:\\Mass\\Auto"+"\\"+fileName+".txt"),new File("D:\\Mass\\Dest"+"\\"+tempFileName+"\\"+fileName+".txt"));
                                            }catch (Exception x) {
                                                x.printStackTrace();
                                            }
                                            }   
                                        }   
                                }
                            }
    

【问题讨论】:

    标签: java file directory


    【解决方案1】:

    根据JLS rule of definite assignment,需要初始化局部变量,因此会出现错误。所以初始化你的inputVal 和tempFileName 变量。可能是这样的:

       String inputVal = ""; // or with null or any other apt value
       File[] tempDir=null; 
       String tempFileName = ""; // or will null or any other apt value
    

    【讨论】:

    • 按指示初始化后,出现空指针异常。
    猜你喜欢
    • 2017-12-24
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 2016-02-24
    相关资源
    最近更新 更多