Как создать текстовый файл на сервере Unix, запустив код Java на сервере Unix? - PullRequest
0 голосов
/ 08 марта 2012

Может кто-нибудь сказать мне, как создать текстовый файл на сервере Unix через Java-код?

Я попытался запустить приведенный ниже код, но он не работает.

BufferedWriter output = null;
File file = new File("D:\abc.txt);

Пожалуйста, помогите мне !!!

Ответы [ 2 ]

4 голосов
/ 08 марта 2012

Хорошо:

// This certainly won't create a file. It's just declaring a variable
// and giving it an initial value of null
BufferedWriter output = null;

// This has multiple problems - see below
File file = new File("D:\abc.txt);

Это недопустимая Java, для начала вам понадобится "D: \ abc.txt" с закрывающей двойной кавычкой и двойной обратной косой чертой (поскольку обратная косая черта должна экранировать строковые литералы Java). Даже тогда:

  • Он просто создаст File объект, который в основном является представлением записи файловой системы. Это не создаст фактический файл в файловой системе
  • Файловые системы Unix не выглядят так. Вы хотите написать на /home/foo/whatever или что-то подобное. Учитывая, что вы определенно не хотите писать на «диск D» (поскольку эта концепция бессмысленна в Unix), где do вы хотите писать?

Когда вы знаете, куда хотите написать, вы можете использовать что-то вроде:

BufferedWriter writer = new BufferedWriter(new OutputStreamWriter
    (new FileOutputStream("/home/foo/abc.txt"), "utf-8"));
try {
    writer.write("This is a line of text");
} finally {
    writer.close();
}
0 голосов
/ 08 марта 2012

Хотя вы не публикуете весь свой код, я полагаю, остальная часть кода записывает в BufferedWriter. У вас есть 2 ошибки (одна может быть просто проблемой копирования / вставки:
1. отсутствует заключительная цитата (как отметил Джон Скит)
2. вам нужно поставить обратную косую черту в Windows (вы должны использовать java.io.File.separator, чтобы быть более безопасным)

BufferedWriter output = null;
File file = new File("D:\\abc.txt");

Наконец, на сервере Unix вы не найдете имя "D: \" ...

BufferedWriter output = null;
// Example if you mounted windows drive D: to /mnt/d
File file = new File("/mnt/d/abc.txt");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...