1. 用FileOutputStream类向文件中写入一串字符,然后用FileInputStream读出写入的内容。 2. 编写一个程序实现将字节流转换为字符流。
时间: 2024-03-16 20:41:46 浏览: 99
好的,我来回答你的两个问题:
1. 用FileOutputStream类向文件中写入一串字符,然后用FileInputStream读出写入的内容。
可以使用以下代码实现:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileStreamDemo {
public static void main(String[] args) {
String str = "Hello, World!";
File file = new File("test.txt");
try (FileOutputStream fos = new FileOutputStream(file);
FileInputStream fis = new FileInputStream(file)) {
// 写入字符串
fos.write(str.getBytes());
// 读取文件内容
byte[] buffer = new byte[(int) file.length()];
fis.read(buffer);
// 将字节数组转换成字符串并输出
String fileContent = new String(buffer);
System.out.println(fileContent);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们首先创建一个名为“test.txt”的文件,然后使用FileOutputStream将字符串“Hello, World!”写入文件中。接下来,我们使用FileInputStream读取文件内容,并将字节数组转换为字符串并输出。最后,我们使用try-with-resources语句来确保在退出try块时关闭文件流。
2. 编写一个程序实现将字节流转换为字符流。
可以使用InputStreamReader和OutputStreamWriter类来实现将字节流转换为字符流。以下是一个示例代码:
```java
import java.io.*;
public class ByteToCharStreamDemo {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("test.txt");
InputStreamReader isr = new InputStreamReader(fis);
FileOutputStream fos = new FileOutputStream("test_copy.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos)) {
// 将字节流转换为字符流并复制文件
int c;
while ((c = isr.read()) != -1) {
osw.write(c);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们首先使用FileInputStream读取名为“test.txt”的文件,然后使用InputStreamReader将字节流转换为字符流。接下来,我们使用FileOutputStream创建一个名为“test_copy.txt”的文件,并使用OutputStreamWriter将字符流转换为字节流。最后,我们使用while循环从InputStreamReader中读取字符,并使用OutputStreamWriter将它们写入OutputStreamWriter中。最后,我们使用try-with-resources语句来确保在退出try块时关闭文件流。
阅读全文