以下代码未执行。我把我的主要课程称为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)));
}
}
...
}
答案 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)
有几种可能性:
fsitem
数组为空。(root.canWrite())
failes。答案 3 :(得分:1)
public static void main(String[] args)
使用此代替您的代码,希望有所帮助