import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.*; public class Main { public static void main(String[] args){ File Now = new File("C:\\Users\\YangPei\\Desktop\\20220390208杨沛.txt"); try { FileReader fileReader = new FileReader(Now); BufferedReader bufferedReader = new BufferedReader(fileReader); String NowString ; int line = 0; String []All = new String[2000]; while((NowString = bufferedReader.readLine()) != null) { All[line] = NowString; line++; } String []write = new String[100]; int Iline = 1; Date date = new Date(); SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); write[0] = sdf4.format(date); Scanner scanner = new Scanner(System.in); do{ write[Iline] = scanner.nextLine(); Iline++; } while (!write[Iline-1].contains("@")); try { for(int i = 0;i<Iline;i++) { FileWriter writer = new FileWriter(Now, true); if(write[i].contains("@")) { write[i].replace("@",""); } writer.write(write[i]);//System.out.println("AAAAAAAAA"); } write.clone(); } catch (Exception e){} } catch (Exception e){} } } 无法写入文件
时间: 2024-02-10 15:25:20 浏览: 114
javaIO练习题
在您的代码中,我注意到您使用的是`FileWriter`来写入文件。但是,您没有在写入后关闭`FileWriter`对象,这可能导致无法写入文件。
在您的代码中,您可以将`FileWriter`对象的创建和写入操作放在try-with-resources语句块中,以确保在写入完成后自动关闭文件。修改您的代码如下:
```java
try (FileWriter writer = new FileWriter(Now, true)) {
for (int i = 0; i < Iline; i++) {
if (write[i].contains("@")) {
write[i] = write[i].replace("@", ""); // 使用replace方法替换字符串并将其重新赋值给write[i]
}
writer.write(write[i] + "\n");
}
System.out.println("Text appended successfully.");
} catch (Exception e) {
System.out.println("An error occurred while appending the text.");
e.printStackTrace();
}
```
请注意,我还在`writer.write(write[i] + "\n")`中添加了一个换行符`\n`,以便在每行文本的末尾添加换行符。
另外,确保您指定的文件路径是正确的,并且您有写入该文件的权限。如果问题仍然存在,请检查并提供任何相关的错误信息,以便我们更好地帮助您解决问题。
阅读全文