IO流之处理流:标准输入输出流、打印流、数据流(六)

标准输入输出流

System.in和System.out分别代表了系统标准的输入和输出设备。默认的输入/输出设备为:键盘/显示器

  • System.in:类型是InputStream。
  • System.out:类型是PrintStream,PrintStream是OutputStream的子类FilterOutputStream的子类。

重定向:System类的setIn()和setOut()可以重新指定输入和输出的位置。

  1. public void setIn(InputStream in)
  2. public void setOut(PrintStream out)

示例:从控制台输入字符串,将读取到的字符串整行转换为大写,然后继续进行输入操作。当输入的是exit时,退出程序。

public class SystemInAndOutTest {
    // 从控制台输入字符串,将读取到的字符串整行转换为大写,然后继续进行输入操作。当输入的是exit时,退出程序。
    public static void main(String[] args) {
        BufferedReader br = null;
        try {
            // 从键盘传入的是字节输入流,用转换流转换为字符输入流
            InputStreamReader isr = new InputStreamReader(System.in);
            // 涉及到读取一整行的字符串,可以使用BufferedReader的readLine()
            br = new BufferedReader(isr);

            while(true){
                System.out.println("请输入字符串:");
                String s = br.readLine();
                if (s.equalsIgnoreCase("exit")){
                    System.out.println("退出程序!");
                    break;
                }
                System.out.println(s.toUpperCase());
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

}

这里涉及了一点转换流的作用,之前没体现出来,这里体现出来了。


打印流

实现将基本数据类型的数据格式转化为字符串输出。

  • PrintStream

  • PrintWriter

  1. 提供了一系列重载的print()和println(),用于多种数据类型的输出。
  2. PrintStream和PrintWriter的输出不会抛出IOException异常。
  3. PrintStream和PrintWriter有自动flush(自动刷新)功能。
  4. System.out返回的是PrintStream的实例

数据流

持久化基本数据类型和String类型的数据。为了方便地操作Java语言的基本数据类型和String的数据,可以使用数据流。(读取或写入基本数据类型的变量或字符串)

  • DataInputStream
  • DataOutputStream

示例:test1:将基本类型和String类型写入到硬盘中。

public class DataOutputStreamTest {
    @Test
    public void test1(){
        DataOutputStream dos = null;
        try {
            // 将基本数据类型的变量和String类型的变量写入到data.txt中
            dos = new DataOutputStream(new FileOutputStream("data.txt"));
            dos.writeUTF("王德发");
            dos.flush();
            dos.writeInt(21);
            dos.flush();
            dos.writeBoolean(true);
            dos.flush();
            dos.writeChar('A');
            dos.flush();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (dos != null){
                try {
                    dos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

写入到硬盘,直接在硬盘查看文件。
在这里插入图片描述
由此可以看出,是查看不了的,得用数据流去读取。
test2():将test1写入到硬盘的数据读出来。

@Test
public void test2(){
    DataInputStream dis = null;
    try {
        // 将刚才写入到硬盘的数据读出来
        dis = new DataInputStream(new FileInputStream("data.txt"));
        System.out.println("name:" + dis.readUTF());
        System.out.println("age:" + dis.readInt());
        System.out.println("Study is Happy? " + dis.readBoolean());
        System.out.println("A or B or C?  " + dis.readChar());
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (dis != null){
            try {
                dis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

在这里插入图片描述

注意:读取不同类型的数据要与当初写入文件保存数据时的顺序一致。否则报异常(EOFException)。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在 Java 中,可以使用输入/输出 (IO stream) 来保存数据。 下面是一个示例代码,展示了如何使用输出数据写入文件: ``` import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; public class SaveData { public static void main(String[] args) { // 要保存的数据 String data = "这是要保存的数据"; // 创建输出 OutputStream outputStream = null; try { outputStream = new FileOutputStream("data.txt"); // 将数据写入输出 outputStream.write(data.getBytes()); } catch (IOException e) { e.printStackTrace(); } finally { // 关闭输出 if (outputStream != null) { try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } } ``` 在这个示例代码中,我们使用了 `FileOutputStream` 类来创建输出,并使用 `write` 方法将数据写入输出。注意,在使用完输出后,要记得关闭输出,以释放系统资源。 此外,还可以使用输入来从文件中读取数据。下面是一个示例代码,展示了如何使用输入读取文件中的数据: ``` import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; public class ReadData { public static void main(String[] args) { // 创建输入 InputStream inputStream = null; try { inputStream = new FileInputStream("data.txt"); // 定义一个字节数组,用于存储读取的数 ### 回答2: 在Java中,可以使用IO流数据保存到文件中。首先,我们需要创建一个输入输出流对象来读取和写入文件。 要将数据保存到文件中,可以使用FileOutputStream类来创建一个文件输出。使用这个可以将数据写入文件中。在创建FileOutputStream对象时,需要传入一个文件路径作为参数,指定文件保存的位置和名称。 接下来,可以使用BufferedWriter类来包装FileOutputStream对象,以提高写入文件的效率。使用BufferedWriter的write方法,可以将数据以字符串的形式写入文件中。 以下为示例代码: ```java import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; public class SaveDataToFileExample { public static void main(String[] args) { String data = "这是要保存的数据"; try { FileOutputStream fileOutputStream = new FileOutputStream("保存的文件路径"); BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream)); bufferedWriter.write(data); bufferedWriter.close(); fileOutputStream.close(); System.out.println("数据保存成功!"); } catch (IOException e) { e.printStackTrace(); } } } ``` 在上述代码中,我们创建了一个字符串"data",将要保存的数据存储在其中。然后,创建了一个FileOutputStream对象fileOutputStream,并传入文件路径作为参数。接下来,创建了一个BufferedWriter对象,用来包装fileOutputStream。使用BufferedWriter的write方法,将data写入文件中。最后,记得要关闭文件输出和缓冲区。 运行上述代码后,可以在指定的文件路径中找到保存的数据。 总结:使用IO流可以方便地将Java中的数据保存到文件中。通过创建文件输出和缓冲区,将数据以字符串的形式写入文件。最后,记得关闭文件输出和缓冲区。 ### 回答3: 在Java中,我们可以使用IO流来保存数据到文件中。下面是一段示例代码: ```java import java.io.*; public class SaveData { public static void main(String[] args) { // 数据 String data = "Hello, world!"; // 文件路径 String filePath = "data.txt"; try { // 创建文件输出 FileOutputStream fos = new FileOutputStream(filePath); // 将数据转换为字节数组 byte[] bytes = data.getBytes(); // 写入文件 fos.write(bytes); // 关闭 fos.close(); System.out.println("数据已保存到文件 " + filePath); } catch (IOException e) { System.out.println("保存数据到文件失败:" + e.getMessage()); } } } ``` 上述代码使用了`FileOutputStream`来创建文件输出,并将数据转换为字节数组后写入文件。最后,我们关闭了,并打印出保存成功的消息。如果保存失败,则会打印出保存失败的消息。 通过这段代码,我们可以将数据保存到指定的文件中,以便以后进行读取或其他操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

moonlight_Answer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值