有人能告诉我这个Java类做什么吗?I/O相关
我对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.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