fileoutputstream 写入字符串
时间: 2023-09-14 21:06:27 浏览: 134
可以使用 FileOutputStream 写入字符串,但是需要将字符串转换为 byte 数组再进行写入。可以使用 String 类的 getBytes() 方法将字符串转换为 byte 数组,然后再使用 FileOutputStream 的 write() 方法写入文件。
例如,以下代码将字符串写入到文件中:
```
String str = "Hello, world!";
byte[] bytes = str.getBytes();
try (FileOutputStream fos = new FileOutputStream("output.txt")) {
fos.write(bytes);
} catch (IOException e) {
e.printStackTrace();
}
```
注意,在写入文件时需要考虑字符编码的问题,否则可能会导致乱码。可以在 getBytes() 方法中指定字符编码,例如:
```
byte[] bytes = str.getBytes("UTF-8");
```
相关问题
接收键盘输入的字符串,用fileoutputstream类将字符串写入文件,用fileinputstream类读出文件内容显示在屏幕上。
### 回答1:
首先,需要使用Scanner类接收键盘输入的字符串,然后使用FileOutputStream类将字符串写入文件。代码如下:
```
import java.io.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要写入文件的字符串:");
String str = scanner.nextLine();
try {
FileOutputStream fos = new FileOutputStream("test.txt");
fos.write(str.getBytes());
fos.close();
System.out.println("写入文件成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
接下来,使用FileInputStream类读取文件内容,并将内容显示在屏幕上。代码如下:
```
import java.io.*;
public class Main {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("test.txt");
byte[] bytes = new byte[1024];
int len = ;
while ((len = fis.read(bytes)) != -1) {
System.out.println(new String(bytes, , len));
}
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上就是接收键盘输入的字符串,用FileOutputStream类将字符串写入文件,用FileInputStream类读出文件内容显示在屏幕上的代码实现。
### 回答2:
首先,需要在程序中接收键盘输入的字符串。我们可以使用Scanner类来获取控制台输入的字符串。代码如下:
```
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要写入文件的内容:");
String content = scanner.nextLine();
```
接下来,我们使用FileOutputStream类将字符串写入文件。需要先创建一个File对象,指定文件路径和文件名。代码如下:
```
File file = new File("test.txt");
FileOutputStream fos = new FileOutputStream(file);
byte[] bytes = content.getBytes();
fos.write(bytes);
fos.close();
```
在这里,将字符串转为字节数组,再使用write方法将字节数组写入文件。最后关闭输出流。
接下来,我们使用FileInputStream类读出文件内容,并显示在屏幕上。代码如下:
```
FileInputStream fis = new FileInputStream(file);
byte[] bytes = new byte[(int) file.length()];
int len;
while ((len = fis.read(bytes)) != -1) {
System.out.println(new String(bytes, 0, len));
}
fis.close();
```
这里要注意,读取字节时,要根据文件的长度来指定字节数组的大小。使用while循环读取字节,直到文件结束。将读取到的字节数组转为字符串,并输出到屏幕上。最后关闭输入流。
完整代码如下:
```
import java.io.*;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要写入文件的内容:");
String content = scanner.nextLine();
File file = new File("test.txt");
try {
FileOutputStream fos = new FileOutputStream(file);
byte[] bytes = content.getBytes();
fos.write(bytes);
fos.close();
FileInputStream fis = new FileInputStream(file);
bytes = new byte[(int) file.length()];
int len;
while ((len = fis.read(bytes)) != -1) {
System.out.println(new String(bytes, 0, len));
}
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
运行程序,可以输入要写入文件的字符串,然后在控制台中显示出来。接着程序会将字符串写入文件,并读出并输出到屏幕上。
### 回答3:
接收键盘输入的字符串可以使用Scanner类,代码示例如下:
```
import java.util.Scanner;
public class FileWrite {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要写入文件的字符串:");
String str = scanner.nextLine();
// 使用FileOutputStream将字符串写入文件
try {
FileOutputStream fos = new FileOutputStream("test.txt", true);
fos.write(str.getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
// 使用FileInputStream读取文件内容并显示在屏幕上
try {
FileInputStream fis = new FileInputStream("test.txt");
byte[] bytes = new byte[fis.available()];
fis.read(bytes);
fis.close();
String content = new String(bytes);
System.out.println("从文件读取的内容如下:");
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
上述代码中,先使用Scanner类接收键盘输入的字符串,然后使用FileOutputStream类将字符串写入文件,FileOutputStream的构造函数中第一个参数是文件名,第二个参数是是否以追加的方式写入文件。接着使用FileInputStream类读取文件内容,FileInputStream的构造函数中只需要传入文件名即可。由于读取文件内容后返回的是字节数组,因此需要将其转换成字符串后再输出。完成后运行程序,便可在test.txt文件中看到输入的字符串,并在控制台上显示该文件内容。
用FileOutputStream类将字符串写入文件,用FileInputStream类读出文件内容显示在屏幕上
好的,以下是Java代码实现:
```java
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileReadWriteExample {
public static void main(String[] args) {
String filename = "example.txt";
String content = "Hello, world!";
// 写入文件
try (FileOutputStream fos = new FileOutputStream(filename)) {
fos.write(content.getBytes());
System.out.println("写入成功!");
} catch (IOException e) {
System.out.println("写入失败:" + e.getMessage());
}
// 读取文件
try (FileInputStream fis = new FileInputStream(filename)) {
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) != -1) {
System.out.print(new String(buffer, 0, length));
}
} catch (IOException e) {
System.out.println("读取失败:" + e.getMessage());
}
}
}
```
这个程序的作用是将字符串 "Hello, world!" 写入一个名为 "example.txt" 的文件,然后读取这个文件的内容并在屏幕上显示出来。在这个程序中,我们使用了 `FileOutputStream` 和 `FileInputStream` 类来进行文件的写入和读取操作。在写入文件时,我们首先将字符串转换为字节数组,然后使用 `write` 方法将字节数组写入文件。在读取文件时,我们使用一个缓冲区来读取文件的内容,并在读取完毕后将缓冲区中的内容转换为字符串并打印出来。注意,在这个程序中,我们使用了 try-with-resources 语句来自动关闭流,以确保流资源得到正确释放。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)