java学习--IO(2)

继续IO流:
一、转换流(在字节流和字符流间转换)
1 InputStreamReader :用于将字节流中读取到的字节按指定字符集解码成字符
2.OutputStreamWriter:用于将写入到字节流中的字节按指定字符集解码成字节

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ByteToCharTest {
    public static void main(String[] args) {
        System.out.println("请输入信息(退出输入e或exit):");
        //把"标准"输入流(键盘输入)这个字节流包装成字符流,再包装成缓冲流
        BufferedReader br = new BufferedReader(
        new InputStreamReader(System.in));
        String s = null;
        try {
            while ((s = br.readLine()) != null) {  //读取用户输入的一行数据 --> 阻塞程序
                if (s.equalsIgnoreCase("e") 
                        || s.equalsIgnoreCase("exit")) {
                    System.out.println("安全退出!!");
                    break;              }
                //将读取到的整行字符串转成大写输出
                System.out.println("-->:"+s.toUpperCase());
                System.out.println("继续输入信息");           }
        } catch (IOException e) {
            e.printStackTrace();
        } finally { 
            try {
                if (null != br) {
                br.close();  //关闭过滤流时,会自动关闭它包装的底层节点流
                }
            } catch (IOException e) {
                e.printStackTrace();        }   }
    }}

二、数据流可操作基本数据类型的数据,分为
1.DataInputSTream
2.DataOutputStream

import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class DataOutputStreamTest {
    public static void main(String[] args) {
        DataOutputStream dos = null;
        try {
            //创建连接到指定文件的数据输出流对象
            dos = new DataOutputStream(new FileOutputStream(
                    "d:\\IOTest\\destData.dat"));
            dos.writeUTF("ab中国");  //写UTF字符串
            dos.writeBoolean(false);  //写入布尔值
            dos.writeLong(1234567890L);  //写入长整数
            System.out.println("写文件成功!");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
                    try {
                if (null != dos) {
                    dos.close(); // 关闭过滤流时,会自动关闭它包装的底层节点流
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

三、打印流:
PrintStream和 PrintWriter:可将基本数据类型的数据转化成字符串输出。

 import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class PrintStreamTest {
    public static void main(String[] args) {

        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(new File("D:\\IOTest\\text.txt"));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        //创建打印输出流,设置为自动刷新模式(写入换行符或字节 '\n' 时都会刷新输出缓冲区)
        PrintStream ps = new PrintStream(fos,true);
        if (ps != null) {
            // 把标准输出流(控制台输出)改成文件
            System.setOut(ps);
        }
        for (int i = 0; i <= 255; i++) {  //输出ASCII字符
            System.out.print((char)i);
            if (i % 50 == 0) {   //每50个数据一行
                System.out.println(); // 换行
            }
        }   ps.close(); }
}

四、对象流
ObjectInputStream 和ObjectOutputStream :用于存取和读取基本类型数据或对象的过滤流,可把java中的对象写到数据源中,也能把对象从数据源中还原回来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值