java 转换流 标准输入输出流 打印流和数据流

1.转换流
import java.io.*;

//对于所有文件都是有编码格式
//对于我们来说,TXT和Java文件一般来讲有三中编码
//ISO8859-1,西欧编码,是纯粹的英文编码,并不适用汉字
//GBK和UTF—8,这二种编码适用于中文和英文
//我们一般使用UTF—8编码
public class Test3 {
    public static void main(String[] args) {
        try {
            Test3.testInputStreamReader();
            Test3.testOutputStreamWriter();
        } catch (Exception e) {
            e.printStackTrace();
        }


    }
    /*
    转换输入流   此IDEA编码类型被咱设为UTF-8
    注意 在转换字符流的时候,设置的字符集编码要与读取文件的数据的编码一致 不然会出现乱码
    InputStreamReader
     */
    //转换字节输入流为字符输入流
    public static void testInputStreamReader()throws Exception{
        FileInputStream fs=new FileInputStream("E:\\IDEAproject\\src\\b\\tt5.txt");

        //字节流转化为字符流
        InputStreamReader in=new InputStreamReader(fs,"UTF-8");//参数一是字节流,参数二是编码

        char c[]=new char[100];
        int len=0;

        while((len=in.read(c))!=-1){
            System.out.println(new String(c,0,len));
        }
        in.close();
        fs.close();
    }

    //转换字节输出流为字符输出流
    public static void testOutputStreamWriter()throws Exception{
        FileOutputStream out=new FileOutputStream("E:\\IDEAproject\\src\\b\\tt6.txt");

        OutputStreamWriter os=new OutputStreamWriter(out,"UTF-8");

        os.write("你好世界");
        os.flush();
        os.close();
        out.close();

    }
}



运行结果:
这是转换流程序专用的文本文档喵

2.标准输入输出流
//标准输入输出流
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Test4 {
    public static void main(String[] args) {
        try {
            Test4.testSystemIn();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    

    public static void testSystemIn()throws Exception{
        //创建一个接收键盘输入数据的输入流
        InputStreamReader is=new InputStreamReader(System.in);

        //把输入流放到缓冲流里
        BufferedReader br=new BufferedReader(is);

        String str="";//定义一个临时接收数据的字符串

        while((str=br.readLine())!=null){
            System.out.println(str);
        }
        br.close();
        is.close();

    }

}


运行结果:
abc
abc
糖醋酱板鸭
糖醋酱板鸭

//把控制台输入的内容写到TXT文件中,当接收到字符串over就结束程序的运行
 public static void writeTXT()throws Exception{
        //创建一个接收键盘输入流
        InputStreamReader is=new InputStreamReader(System.in);

        //把输入流放到缓冲流
        BufferedReader br=new BufferedReader(is);
        BufferedWriter out=new BufferedWriter(new FileWriter("E:\\IDEAproject\\src\\b\\tt7.txt"));
        String line="";
        while((line=br.readLine())!=null){
            if(line.equals("over")){
                break;
            }
            //读取的每一行都写入指定的TXT文件中
            out.write(line);
        }
            out.flush();
            out.close();
            br.close();
    }

在这里插入图片描述
在这里插入图片描述

3.数据流
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/*
数据流,专门用来做基本数据结构的读写
 */
public class Test5 {
    public static void main(String[] args) {
        try {
            Test5.testDataOutputStream();
            Test5.testDataInputStream();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
/*
    数据输出流 DataOutputStream
用数据输出流写到文件中的基本数据类型的数据,是乱码的,不能直接辨认出来,需要数据的输入流来读取
 */
    public static void  testDataOutputStream()throws Exception{
        DataOutputStream out=new DataOutputStream(new FileOutputStream("E:\\IDEAproject\\src\\b\\tt8.txt"));

        out.writeInt(14);
        out.writeBoolean(true);

    }
    /*
    数据输入流 DataInputStream
    用数据输入流读取数据输出流写到文件中的数据时,要保证使用和当时写的数据类型一致的类型读取
*/
    public static  void testDataInputStream()throws Exception{
        DataInputStream in=new DataInputStream(new FileInputStream("E:\\IDEAproject\\src\\b\\tt8.txt"));

        System.out.println(in.readInt());
        System.out.println(in.readBoolean());
        in.close();
    }
}



运行结果:
14
true

注意:用数据输出流写到文件中的基本数据类型的数据,是乱码的,不能直接辨认出来,需要数据的输入流来读取
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值