создать текстовый файл в папке - PullRequest
5 голосов
/ 12 июля 2011

Я хочу создать текстовый файл в той папке, которую я создаю здесь.

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");

Но этот код не создает текстовый файл в этой папке. Вместо этого он создает текстовый файл вне этой папки.

Ответы [ 4 ]

6 голосов
/ 12 июля 2011

Один из конструкторов 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
6 голосов
/ 12 июля 2011

Что вам нужно, это

File file = new File(dir, hash + ".txt");

Ключом здесь является конструктор File(File parent, String child).Он создает файл с указанным именем в предоставленном родительском каталоге (если, конечно, этот каталог существует).

1 голос
/ 12 июля 2011

Строка

new File(""+dir+"\""+hash+".txt");

создает файл с именем crawl_html"the_hash.txt, поскольку \" внутри литерала String используется для представления символа двойной кавычки, а не обратной косой черты.\\ должен использоваться для представления обратной косой черты.

Использовать конструктор файла, принимая File (каталог) в качестве первого аргумента и имя файла в качестве второго аргумента:

new File(dir, hash + ".txt");
0 голосов
/ 12 июля 2011

ваш разделитель пути кажется выключенным

попробовать:

File file = new File ( "" + dir + "/" + hash + ".txt" );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...