Я думаю, что приведенные ниже коды помогут вам написать много строк в новый файл.
import java.io.*;
//we did not use the classes of java.util package so let me remove it;
public class FileWrite1 {
public static void main(String[] args) {
//we will use file name in File class so let me remove String file
String input = null, fileName = null;
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
System.out.println("Enter the file name you wish to write the data");
System.out.println("==============================================");
//Scanner class does not need because you have already use BufferedReader class
//Scanner sc = new Scanner(System.in);
//So, if you have BufferedReader class, let's use it below
fileName = br.readLine(); //accepting the name of the file
//if you want to create a new file using the name "fileName", you should use the class File.
File file = new File("D:\\" + fileName + ".txt");
//code in below is not necessary because of File class
//file = "C:\"+fileName+".txt"; //error line
//code in below will not work, because String file is not from BufferedReader class on your code, so let me take it to comment
//file.readLine(); //will this work?
System.out.println("Enter your data");
System.out.println("==============================================");
System.out.println("");
System.out.println("");
do {
input = br.readLine(); //accepting the data to write in the file
if (input.toLowerCase().equals("end")) { //end to terminate the program
break;
} else {
// inside FileWriter object, you should use the object name of File Class, not String file
try (BufferedWriter bw = new BufferedWriter(new FileWriter(file, true))) {
bw.write(input);
bw.newLine();
} catch (IOException e) {
System.out.println(e);
System.exit(0);
}
}
} while (input != null);
} catch (Exception ex) {
System.out.println(ex);
System.exit(0);
}
}
}
Позвольте мне объяснить.
- Во-первых, если у нас есть
BufferedReader
класс, мы можем использовать его, чтобы получить
входные данные, поэтому мы не должны включать классы java.util
пакета в ваш код.
- Тогда
String file
не нужно. Потому что мы будем использовать file
имя в File
классе. Итак, оставим это в будущем.
- Как уже упоминалось, если у нас есть класс BufferedReader, мы сможем получить
входы, давайте использовать его:
fileName = br.readLine();
Если вы хотите записать входные данные в новый файл, вы должны вызвать класс
File
так:
File file = new File("D:\\" + fileName + ".txt");
D: \ - имя диска, fileName - имя нового файла, созданного на D
диск и .txt - это расширение файла.
file.readLine (); не будет работать, потому что в вашем коде файл String
не из класса BufferedReader.
внутри объекта FileWriter, вы должны использовать имя объекта File
Класс, не строковый файл
Запустите этот код в вашей IDE. Не забудьте изменить расположение файла в классе File, в моем случае это было в D: \ drive.