【JAVA开发之IO流1-1】IO流简介及输入流和输出流

I/O流(input/output),简称流,是一种特殊的类。

其中按功能可以分为输入流、输出流:

输入流:程序读取数据源到内存。数据源为外界(硬盘、网络、键盘输入),即是将外部数据读入到程序内存的通道。

输出流,程序将内存中的数据输出到外界,比如储存到硬盘、上传到网络等,即是将内存中的数据输出到外界。


下面我们写2个控制台小程序理解一下I/O流的概念,

第一个程序,用Scanner将用户输入的字符串接收,并用输出流保存到电脑硬盘中。

第二个程序,用输入流读取刚刚保存的文件,并打印到控制台。


第一个程序:运行成功可进入相应目录查看写入的文件

import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class OutPut {
    public static void main(String[] args){
        //接收用户输入的数据
        Scanner in=new Scanner(System.in);
        String str=in.next();
        try {
            //选择需要输出文件的位置,不存在会新建,如果路径错误、空间不够会抛出异常,必须用try捕获异常
            FileWriter fw=new FileWriter("D:/data.txt");
            fw.write(str);//写入数据到内存缓冲区
            fw.flush();   //刷新缓冲区,写入文件
            fw.close();   //关闭流,释放缓冲区资源
            System.out.println("写入成功!");//打印此条log,说明写入成功,可以到路径下查看该txt文件
        } catch (IOException e) {
            System.out.println("写入失败,可能是路径错误,或者硬盘空间不足"); //如果出现路径错误,会捕获到异常
        }
    }
}



第二个程序:

import java.io.FileReader;
import java.io.IOException;

public class InPut {
    public static void main(String[] args){
        try {
            FileReader fr=new FileReader("D:/data.txt");//new出一个输入流
            int aa=fr.read();//读取第一个字符的ASCII值
            char bb= (char) aa;//将ASCII值转换为单字符
            String str= String.valueOf(bb);//将char整合为String
            while (aa!=-1){//继续读取,直到ASCII值为-1,即读取到文件尾。
                aa=fr.read();
                bb= (char) aa;
                str=str+bb;//将一个一个字符合并为字符串 当ASCII值读取到-1的时候,就读完了,停止读取
            }
            fr.close();//关闭这个输入流,节约资源占用
            System.out.println("读取成功,文件内容为\n"+str);
        } catch (IOException e) {
            System.out.println("读取失败,可能为路径错误,或者文件不存在");//同理要捕获异常
        }
    }
}



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值