我遇到了程序问题。 bellow方法是我的程序的一部分,假设将存储在ArrayList中的文本行存储到文本文件(例如store.txt)中,我在这里做错了什么?程序编译但不将文本行存储到所述文件中。 Bellow是用于存储文本行的所述方法
// this part stores the string into a file
static void storeTextLinesToFile(List<String> listOfTextLines, String fileName) {
try {
PrintWriter outputFile = new PrintWriter(new FileWriter(
"C:/Users/Asus/Desktop/zing/store.txt/" + fileName));
for (String line : listOfTextLines) {
outputFile.println(line);
}
outputFile.close();
} catch (IOException ioException) {
System.out.println("\n\n Cannot write to file \"" + fileName + "\"");
}
}
答案 0 :(得分:0)
在catch块中使用printStackTrace()。然后只有你知道你的程序的绝对错误。 看看这里。
PrintWriter output_file = new PrintWriter( new FileWriter( "C:/Users/Asus/Desktop/zing/store.txt/" + given_file_name ) ) ;
假设store.txt
是文件而不是目录,那么您将获得FileNotFoundException
。
所以试试这个..
PrintWriter output_file = new PrintWriter( new FileWriter( "C:/Users/Asus/Desktop/zing/" + given_file_name ) ) ;
将给定_file_name的值设为"store.txt"
答案 1 :(得分:0)
试试这个。它是可运行的代码。它显示您上面的代码工作正常。我只是改变了文件路径。我正在从NetBeans运行,因此文件最终会出现在Project Root文件夹中。
ProjectRoot
src
build
store.txt
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
public class StoreToFIle {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
for (int i = 0; i < 20; i++) {
list.add(String.valueOf(i));
}
storeTextLinesToFile(list, "store.txt");
}
static void storeTextLinesToFile(List<String> listOfTextLines, String fileName) {
try {
PrintWriter outputFile = new PrintWriter(new FileWriter(fileName));
for (String line : listOfTextLines) {
outputFile.println(line);
}
outputFile.close();
} catch (IOException ioException) {
System.out.println("\n\n Cannot write to file \"" + fileName + "\"");
}
}
}