Хорошо:
// 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();
}