JAVA实现字符流写操作的类或接口包括下面的哪些?( ) A. FileReader B. Writer C. FileInputStream D. FileOutputStream E. FileWriter
时间: 2024-04-01 10:30:55 浏览: 92
正确答案是:B、E。
解析:
字符流写操作的类或接口一般都以Writer和OutputStream结尾。
A选项的FileReader是字符流读操作的类,不是写操作的。
C选项的FileInputStream是字节流读操作的类,不是字符流写操作的。
D选项的FileOutputStream是字节流写操作的类,不是字符流写操作的。
因此,只有B和E选项是字符流写操作的类或接口,其中B选项的Writer是抽象类,需要使用其子类完成具体的字符流写操作;E选项的FileWriter则是Writer类的子类,可以直接使用其提供的方法进行字符流写操作。
相关问题
1.编写一个程序,分别使用字节流和字符流实现一个文本文件的拷贝(源文件D:/src.txt,目标文件E:/copy.txt)。要求如下: (1)使用FileInputStream、FileOutputStream和FileReader、FileWriter分别进行拷贝。 (2)使用字节流拷贝时,定义一个1024长度的字节数组作为缓冲区; 使用字符流拷贝时,利用BufferedReader、BufferedWriter包装流进行包装。
使用字节流拷贝:
```java
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ByteStreamCopy {
public static void main(String[] args) {
String srcFile = "D:/src.txt";
String destFile = "E:/copy.txt";
try (FileInputStream fis = new FileInputStream(srcFile);
FileOutputStream fos = new FileOutputStream(destFile)) {
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
使用字符流拷贝:
```java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CharStreamCopy {
public static void main(String[] args) {
String srcFile = "D:/src.txt";
String destFile = "E:/copy.txt";
try (BufferedReader br = new BufferedReader(new FileReader(srcFile));
BufferedWriter bw = new BufferedWriter(new FileWriter(destFile))) {
char[] buffer = new char[1024];
int len;
while ((len = br.read(buffer)) != -1) {
bw.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
请编写程序,分别使用字节流和字符流拷贝一个文本文件。要求如下: 1.使用FileInputStream、FileOutputStream和FileReader、FileWriter分别进行拷贝。 2.使用字节流拷贝时,定义一个长度为1024的字节数组作为缓冲区;使用字符流进行拷贝时,使用BufferedReader和BufferedWriter包装流进行包装
使用字节流进行拷贝:
```java
import java.io.*;
public class ByteStreamCopy {
public static void main(String[] args) {
File sourceFile = new File("source.txt");
File targetFile = new File("target.txt");
try (FileInputStream fis = new FileInputStream(sourceFile);
FileOutputStream fos = new FileOutputStream(targetFile)) {
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) != -1) {
fos.write(buffer, 0, length);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
使用字符流进行拷贝:
```java
import java.io.*;
public class CharStreamCopy {
public static void main(String[] args) {
File sourceFile = new File("source.txt");
File targetFile = new File("target.txt");
try (FileReader fr = new FileReader(sourceFile);
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter(targetFile);
BufferedWriter bw = new BufferedWriter(fw)) {
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
阅读全文