我想在我在这里创建的文件夹中创建一个文本文件。
File dir = new File("crawl_html");
dir.mkdir();
String hash = MD5Util.md5Hex(url1.toString());
System.out.println("hash:-" + hash);
File file = new File(""+dir+"\""+hash+".txt");
但是这段代码不会将文本文件创建到该文件夹中。相反,它会将文本文件放在该文件夹之外..
答案 0 :(得分:6)
您需要的是
File file = new File(dir, hash + ".txt");
这里的关键是File(File parent, String child)
构造函数。它在提供的父目录下创建一个具有指定名称的文件(当然,假设该目录存在)。
答案 1 :(得分:6)
java.io.File的一个构造函数采用父目录。你可以这样做:
final File parentDir = new File("crawl_html");
parentDir.mkdir();
final String hash = "abc";
final String fileName = hash + ".txt";
final File file = new File(parentDir, fileName);
file.createNewFile(); // Creates file crawl_html/abc.txt
答案 2 :(得分:1)
该行
new File(""+dir+"\""+hash+".txt");
生成一个名为crawl_html"the_hash.txt
的文件,因为String文字中的\"
用于表示双引号,而不是反斜杠。必须使用\\
来表示反斜杠。
使用File构造函数将File(目录)作为第一个参数,将文件名作为第二个参数:
new File(dir, hash + ".txt");
答案 3 :(得分:0)
您的路径定界符似乎已关闭
尝试:
File file = new File ( "" + dir + "/" + hash + ".txt" );