java中io流知识梳理

这篇博客介绍了Java中的IO流,包括字节流和字符流,以及输入流和输出流的区别。通过示例代码展示了如何使用BufferedReader和BufferedWriter从控制台读取输入并写入到文件中,实现用户交互式的文本文件创建和编辑。当输入'end'时,程序停止写入。
摘要由CSDN通过智能技术生成

java中IO流主要用于硬板、内存、键盘等处理设备上得数据操作,根据处理数据的数据类型的不同可以分为:

字节流(抽象基类为InPutStream和OutPutStream)列如:jpg,MP3,MP4等等文件

字符流(抽象基类为Reader和Writer)列如:word文档,excal文档等等。

根据流向不同,可以分为:输入流和输出流。  


 通过file关键字对文件,文件夹操作,file类可以跨平台进行操作,因为java是跨平台的开发环境。

主要的方法如下图:

java.io包下常用的16个流

文件流:

  1. java.io.FileInputStream
  2. java.io.FileOutputStream
  3. java.io.FileReader
  4. java.io.FileWriter
    转换流:(将字节流转换成字符流)
  5. java.io.InputStreamReader
  6. java.io.OuputStreamWriter
    缓冲流:(减少磁盘操作,增加磁盘寿命)
  7. java.io.BufferedReader
  8. java.io.BufferedWriter
  9. java.io.BufferedInputStream
  10. java.io.BufferedOnputStream
    数据流:
  11. java.io.DataInputStream
  12. java.io.DataOnputStream
    对象流:
  13. java.io.ObjectInputStream
  14. java.io.ObjectOnputStream
    标准输出流:
  15. java.io.PrintWriter
  16. java.io.PrintStream

实战

废话不多说代码上

创建一个类,运行后在控制台输入y可以创建一个A.txt文档到D盘 (输入其他字符无效,并重新输入),然后当你每次在控制台输入的字符串按下回车键后都会输出到A.txt文档中并且换行(如果输入end则结束输出否则继续执行输出)

import java.io.*;
import java.util.Scanner;

public class Test3 {
    public static void main(String[] args)  {
        BufferedReader br = null;
        BufferedWriter bw = null;
        Scanner input = new Scanner(System.in);
        //创一个无限循环,用于循环输入直到输入为y,break跳出终止循环
        for (; ; ) {
            System.out.println("请输入y创建txt文档");
            String yy = input.next();
            //做判断,当输入y时进入if,否则继续循环
            if (yy.equals("y")) {
                //在指定位置创一个A.txt
                File f1 = new File("d:\\A.txt");
                break;
            } else {
                System.out.println("创建失败");
                continue;
            }
        }
        System.out.println("请输入要录入的内容");
        br = new BufferedReader(new InputStreamReader(System.in));
        try {
            bw = new BufferedWriter(new FileWriter(new File("d:\\A.txt")));
            String show="";
            while ((show = br.readLine()) != null) {
                //写入一行内容
                if (show.equals("end")) {
                    System.out.println("结束输入");
                    break;
                }
                bw.write(show);
                bw.newLine();
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                br.close();
                bw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
}
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值