有人能告诉我这个Java类做什么吗?I/O相关

有人能告诉我这个Java类做什么吗?I/O相关,java,Java,我对Java比较陌生,正在尝试学习I/O语法。有人能给我一个关于这段代码的概述吗?谢谢 导入java.io.* public class FileReader { private String openFile=""; private String saveFile=""; FileReader(openFile, saveFile) { this.openFile=openFile; this.saveFile=saveFile; } public S

我对Java比较陌生,正在尝试学习I/O语法。有人能给我一个关于这段代码的概述吗?谢谢


导入java.io.*

public class FileReader { private String openFile=""; private String saveFile=""; FileReader(openFile, saveFile) { this.openFile=openFile; this.saveFile=saveFile; } public String process(){ System.out.println(this.openFile); System.out.println(this.saveFile); BufferedReader open=null; FileReader openFR=null; FileWriter save=null; int counter=0; String output=""; if(openFile.equals("")){ return "No open file specifified\n"; } if(this.saveFile.equals("")){ return "No save file specified\n"; } try { openFR = new FileReader(this.openFile); open = new BufferedReader(openFR); } catch (FileNotFoundException e) { return ("Open file no longer exists\n"); } try { save = new FileWriter(saveFile); } catch (IOException e){ return ("Error saving the file\n"); } try{ String temp = open.readLine(); while(temp != null){ temp = open.readLine(); counter++; save.write(output + "\n"); } } catch (IOException e){ e.getStackTrace(); return ("Error reading open file"); } try { save.flush(); } catch (IOException e) { e.printStackTrace(); return ("Error writing save file"); } return "Operation completed successfully"; } }
公共类文件读取器{ 私有字符串openFile=“”; 私有字符串saveFile=“”; 文件阅读器(openFile、saveFile) { this.openFile=openFile; this.saveFile=saveFile; } 公共字符串进程(){ System.out.println(this.openFile); System.out.println(this.saveFile); BufferedReader open=null; FileReader openFR=null; FileWriter save=null; int计数器=0; 字符串输出=”; if(openFile.equals(“”){ 返回“未指定打开的文件\n”; } if(this.saveFile.equals(“”){ 返回“未指定保存文件\n”; } 试一试{ openFR=新文件读取器(this.openFile); open=新的BufferedReader(openFR); }catch(filenotfounde异常){ 返回(“打开的文件不再存在\n”); } 试一试{ save=新文件编写器(saveFile); } 捕获(IOE异常){ 返回(“保存文件时出错”); } 试一试{ String temp=open.readLine(); while(temp!=null){ temp=open.readLine(); 计数器++; save.write(输出+“\n”); } }捕获(IOE异常){ e、 getStackTrace(); 返回(“读取打开的文件时出错”); } 试一试{ save.flush(); }捕获(IOE异常){ e、 printStackTrace(); 返回(“写入保存文件时出错”); } 返回“操作成功完成”; } }
计数器的新行数写入保存文件,因为
输出总是
。我想应该是将一个文件复制到另一个文件,但是应该有
save.write(temp+“\n”)
执行此操作。

计数器的新行数写入保存文件,因为
输出总是
。我想应该是将一个文件复制到另一个文件,但是应该有
save.write(temp+“\n”)这样做。

它尝试复制文本文件,但似乎有一些错误。

它尝试复制文本文件,但似乎有一些错误。

它打开两个文件,然后(如果两个文件都存在并且可以打开),从第一个文件中读取行,然后以无休止的循环将空行写入第二个文件,直到到达第一个文件的末尾

顺便说一句,它不会关闭任何文件。

它会打开两个文件,然后(如果两个文件都存在并且可以打开),以无休止的循环从第一个文件中读取行,并将空行写入第二个文件,直到到达第一个文件的末尾

顺便说一句,它不会关闭任何文件。

是指向Java I/O教程的链接。如果您试图掌握Java I/O,这是最好的起点

粘贴的代码试图将源文件一次一行复制到新的目标文件,但它包含可防止这种情况发生的错误,即:

  • 文件的第一行被读取并立即丢弃
  • 读取的每一行都不会指定给“输出”,因此也不会写入目标文件。唯一写入的内容是“\n”
是指向Java I/O教程的链接。如果您试图掌握Java I/O,这是最好的起点

粘贴的代码试图将源文件一次一行复制到新的目标文件,但它包含可防止这种情况发生的错误,即:

  • 文件的第一行被读取并立即丢弃
  • 读取的每一行都不会指定给“输出”,因此也不会写入目标文件。唯一写入的内容是“\n”

对我来说,这段代码除了抛出大量编译时错误外,什么都不做

首先,您的类名FileReader与java.io.FileReader冲突,因此

new FileReader(this.openFile);
实际上是尝试实例化类FileReader的一个实例(对于它,没有接受单个字符串的构造函数),而不是java.io.FileReader

这个openFR被声明为FileReader类型(您的FileReader不是java.io.FileReader),因此

open = new BufferedReader(openFR);
也会失败,因为BufferedReader需要一个java.io.FileReader对象

FileReader的构造函数未声明参数的类型:

FileReader(openFile, saveFile) {
    this.openFile=openFile;
    this.saveFile=saveFile;
}
应该是:

FileReader(String openFile, String saveFile) {
    this.openFile = openFile;
    this.saveFile = saveFile;
}
因此,在修复这些错误后,程序将执行以下操作:

它试图通过读取openFile中的所有行并将它们写入saveFile来复制文件

它实际上做的是:


从文件中读取第一行并丢弃它。进入一个循环,在此循环中它继续读取行并递增计数器(这也是错误的,因为它从不在计数中包含第一行,除非目的是忽略第一行??)。然后,它为openFile中的每一行(减去第一行)向saveFile写入一个空行。你也从来没有对计数器值做过任何事情,那么计算它有什么意义呢?

对我来说,这段代码除了抛出大量编译时错误外,什么都不做

首先,您的类名FileReader与java.io.FileReader冲突,因此

new FileReader(this.openFile);
实际上是尝试实例化类FileReader的一个实例(对于它,没有接受单个字符串的构造函数),而不是java.io.FileReader

这个openFR被声明为FileReader类型(您的FileReader不是java.io.FileReader),因此

open = new BufferedReader(openFR);
也会失败,因为BufferedReader需要一个java.io.FileReader对象

FileReader的构造函数未声明参数的类型:

FileReader(openFile, saveFile) {
    this.openFile=openFile;
    this.saveFile=saveFile;
}
应该是:

FileReader(String openFile, String saveFile) {
    this.openFile = openFile;
    this.saveFile = saveFile;
}
因此,在修复这些错误后,程序将执行以下操作:

它试图通过读取openFile中的所有行并将它们写入saveFile来复制文件

它实际上做的是:

从文件中读取第一行并丢弃它。进入一个循环,在该循环中继续r