头歌Java第1关:字符流 - 输入输出
概述
在这个任务中,我们需要实现一个字符流的输入输出操作。具体而言,我们需要从一个文本文件中读取数据,并将数据写入到另一个文本文件中。
流程
下面是整个任务的流程:
步骤 | 描述 |
---|---|
步骤1 | 打开源文件和目标文件 |
步骤2 | 读取源文件中的数据 |
步骤3 | 将读取到的数据写入目标文件中 |
步骤4 | 关闭源文件和目标文件 |
代码实现
下面是每个步骤需要做的事情以及对应的代码:
步骤1:打开源文件和目标文件
在这一步中,我们需要打开源文件和目标文件,以便后续的读取和写入操作。
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
// 打开源文件
FileReader sourceFile = new FileReader("source.txt");
// 打开目标文件
FileWriter targetFile = new FileWriter("target.txt");
// 此处可以添加打开文件成功的提示信息
} catch (IOException e) {
// 处理文件打开失败的异常
e.printStackTrace();
}
}
}
注释:在这段代码中,我们使用了FileReader
和FileWriter
两个类来分别打开源文件和目标文件。FileReader
用于读取文件中的字符流,而FileWriter
用于将字符流写入文件中。注意,这里我们使用了try-catch块来捕获可能发生的异常。
步骤2:读取源文件中的数据
在这一步中,我们需要从源文件中读取数据。
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
FileReader sourceFile = new FileReader("source.txt");
FileWriter targetFile = new FileWriter("target.txt");
int data;
while ((data = sourceFile.read()) != -1) {
// 打印读取到的字符
System.out.print((char) data);
}
sourceFile.close();
targetFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
注释:在这段代码中,我们使用了一个while
循环来不断读取源文件中的字符,直到读取完毕。注意,我们使用了read()
方法来读取字符,并且判断读取到的字符是否为文件的末尾(-1)。如果不是文件的末尾,我们将读取到的字符强制转换为字符型,并打印出来。
步骤3:将读取到的数据写入目标文件中
在这一步中,我们需要将从源文件中读取到的数据写入到目标文件中。
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
FileReader sourceFile = new FileReader("source.txt");
FileWriter targetFile = new FileWriter("target.txt");
int data;
while ((data = sourceFile.read()) != -1) {
targetFile.write(data);
}
sourceFile.close();
targetFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
注释:在这段代码中,我们使用了write()
方法将读取到的字符写入到目标文件中。
步骤4:关闭源文件和目标文件
在这一步中,我们需要关闭源文件和目标文件,以释放资源。
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
FileReader sourceFile = new FileReader("source.txt");
FileWriter targetFile = new FileWriter("target.txt");
int data;
while ((data = sourceFile.read()) != -1) {
targetFile.write(data);
}
sourceFile.close();
targetFile.close();
// 此处可以添加关闭文件成功的提示信息
} catch (IOException e) {
e.printStackTrace();
}
}
}
注释:在这段代码中,我们使用了close()
方法来关闭打