尝试在名称中使用变量的特定目录中创建文件。但是,我在以下几行中保持get和IOException。
File dir = new File("logs/" + s);
dir.mkdirs();
File permfile = new File(dir, stamp + ".txt");
permfile.createNewFile();
boolean exist = permfile.createNewFile();
感谢您的指导。伊夫'今天已经12个小时了,一旦我可以写文件我就可以回家了! :)
答案 0 :(得分:0)
编辑: sry对我来说似乎有点晚了,但尝试了你的代码并且它工作得很好,没有异常抛出:
try{
String s = "foldername";
String stamp = "filename";
File dir = new File("logs/" + s);
dir.mkdirs();
File permfile = new File(dir, stamp + ".txt");
permfile.createNewFile();
}
catch(Exception k)
{ System.out.println("Oops");}
也许错误发生在其他地方?
答案 1 :(得分:0)
我可以看到一个可能的问题是当Windows使用 back 斜杠时,使用文字转发斜杠作为路径分隔符。您的系统可能会将正斜杠解释为名称的一部分,而不是分隔符,而在Windows中,正斜杠是illegal character for a filename。
为了完全避免这个问题,我会让java API通过为你的dir文件使用适当的构造函数new File(String parent, String child)
来排序分隔符(而不是自己构建文字路径),即:
File dir = new File("logs", s);
另一个问题是stamp
可能包含对文件系统中的文件名不合法的字符。
答案 2 :(得分:0)
我会使用NIO API来执行此类任务。
Path dir = Paths.get("logs", s);
Files.createDirectories(dir);
Path permfile = dir.resolve(stamp + ".txt");
boolean exist = true;
if(!permfile.toFile().exists()) {
Files.createFile(permfile);
exist = false;
}