Java代码不执行

时间:2012-02-24 11:03:34

标签: java android

以下代码未执行。我把我的主要课程称为NameManager.main(fsitem);。甚至调试都没有显示在堆栈跟踪中,也没有创建文件。我做错了什么?

public class NameManager {
...
public static void main(ArrayList<String> fsitem) {
    for (int i = 0; i < fsitem.size(); i++) {
        try {
            File root = new File(Environment.getExternalStorageDirectory()
                    .getName() + "/" + fsitem.get(i));
            if (root.canWrite()) {
                if (!root.exists()) {
                    Log.d("NameManager.java",
                            (root.getName() + " exists and is writable."));
                    File namefile = new File(root, ".name");
                    FileWriter namewriter = new FileWriter(namefile);
                    BufferedWriter out = new BufferedWriter(namewriter);
                    out.write("image_"
                            + (i++)
                            + "%n(Autogenerated Name)%nroyale1223@gmail.com");
                    out.close();
                } else {
                    Log.d("NameManager.java : ",
                        (root.getName() + " already exists."));
                }
            }
        } catch (IOException e) {
            Log.e("NameManager.java : ",("Error!! Not Writable!!"
                    + Environment.getExternalStorageDirectory().getName()
                    + "/" + fsitem.get(i)));
        }
    }
...
}

4 个答案:

答案 0 :(得分:5)

main的方法签名必须是:public static void main(String[])而不是ArrayList<String>作为参数。请参阅"Hello World!" from Oracle tutorial


编辑:在与OP聊天后,结果发现他调用NameManager.NameManager(fsitem);而不是NameManager.main(fsitem);

答案 1 :(得分:2)

这段代码检查是否存在root并且可以写入(.canWrite()),并且不存在(!.exists())。两者在一起是不可能的,所以什么都不会发生。

答案 2 :(得分:1)

有几种可能性:

  1. 您的fsitem数组为空。
  2. (root.canWrite()) failes。
  3. 您确定要调用该方法吗?

答案 3 :(得分:1)

public static void main(String[] args)
  

使用此代替您的代码,希望有所帮助