Java Filereader.read()方法不工作
我编写了以下代码,创建一个文件,向其中添加文本,然后读取该文件。我的问题是,在执行时,文件的内容不会显示在屏幕上,尽管内容添加到文本文件中 下面是我的代码Java Filereader.read()方法不工作,java,filereader,file-read,Java,Filereader,File Read,我编写了以下代码,创建一个文件,向其中添加文本,然后读取该文件。我的问题是,在执行时,文件的内容不会显示在屏幕上,尽管内容添加到文本文件中 下面是我的代码 import java.io.*; class prc4{ public static void main(String args[]){ try{ File f = new File("C:\\Program Files\\Java\\jdk1.8.0_25\\bin\\file1.txt"); if (f.createNe
import java.io.*;
class prc4{
public static void main(String args[]){
try{
File f = new File("C:\\Program Files\\Java\\jdk1.8.0_25\\bin\\file1.txt");
if (f.createNewFile()){
System.out.println("File is created!");
}else{
System.out.println("File already exists.");
}
FileWriter f1 = new FileWriter("file1.txt");
f1.write("Hello World. This is a sample text file!");
FileReader f2 = new FileReader("file1.txt");
int x = f2.read();
while(x != -1){
System.out.println((char)x);
x = f2.read();
}
f1.close();
f2.close();
}catch(Exception e){ }
}
}
输出:
在文本文件中:
写入文件(
f1.write()
)后:
在读取文件之前,您需要关闭或至少关闭写入程序。写入文件是缓冲的,因此当您从文件中读取时,内容实际上并不在文件中。我建议使用try with resources构造关闭编写器:
try (FileWriter f1 = new FileWriter("file1.txt"))
{
f1.write("Hello World. This is a sample text file!");
}
try (FileReader f2 = new FileReader("file1.txt");)
{
int x = f2.read();
while(x != -1){
System.out.println((char)x);
x = f2.read();
}
}
还要注意,您正在为每个字符调用
println()
,这意味着每个字符将打印在单独的一行上。这可能是您想要的,或者您可能想调用print()
。尝试使用BufferedReader,它是字符输入流的通用读取器。是读取文本文件的最佳选项
class prc4 {
public static void main(String args[]) {
try {
File f = new File(".\\file1.txt");
if (f.createNewFile()) {
System.out.println("File is created!");
} else {
System.out.println("File already exists.");
}
FileWriter f1 = new FileWriter(".\\file1.txt");
f1.write("Hello World. This is a sample text file!");
FileReader f2 = new FileReader(".\\file1.txt");
BufferedReader br = new BufferedReader(f2);
String s;
while((s = br.readLine()) != null) {
System.out.println(s);
}
br.close();
f1.close();
f2.close();
} catch (Exception e) {
}
}
}
刷新并关闭
写入程序
,您还可以使用缓冲读取程序
逐行读取文件内容以打印其内容
public static void main(String args[]){
try{
File f = new File("file1.txt");
if (f.createNewFile()){
System.out.println("File is created!");
}else{
System.out.println("File already exists.");
}
FileWriter f1 = new FileWriter(f);
f1.write("Hello World. This is a sample text file!");
f1.flush();
f1.close();
FileReader f2 = new FileReader(f);
BufferedReader reader = null;
try {
reader = new BufferedReader(f2);
String l = reader.readLine();
while (l!=null) {
System.out.println(l);
l = reader.readLine();
}
}finally {
try {
if (reader!=null)
reader.close();
} catch (Exception e) {
// Do nothing
}
}
}catch(Exception e){
e.printStackTrace();
}
}
尝试读取此文件之前,请尝试关闭
写入程序。另外,不要忽略catch
块中可能存在的异常。程序输出和文件内容都是文本。不要将文本作为截图发布。在你的问题中以文本形式发布。@Berger非常感谢!成功了。干杯
public static void main(String args[]){
try{
File f = new File("file1.txt");
if (f.createNewFile()){
System.out.println("File is created!");
}else{
System.out.println("File already exists.");
}
FileWriter f1 = new FileWriter(f);
f1.write("Hello World. This is a sample text file!");
f1.flush();
f1.close();
FileReader f2 = new FileReader(f);
BufferedReader reader = null;
try {
reader = new BufferedReader(f2);
String l = reader.readLine();
while (l!=null) {
System.out.println(l);
l = reader.readLine();
}
}finally {
try {
if (reader!=null)
reader.close();
} catch (Exception e) {
// Do nothing
}
}
}catch(Exception e){
e.printStackTrace();
}
}