Day34-对象处理流细节、标准输入输出流、转换流、打印流

Day34-对象处理流细节、标准输入输出流、转换流、打印流

对象处理流使用细节

在这里插入图片描述

标准输入输出流

在这里插入图片描述

package com.ghy.standard;

import java.util.Scanner;

public class InputAndOutput01 {
    public static void main(String[] args) {
        //System.in 的编译类型是 InputStream
        //System.in 的运行类型是 BufferedInputStream
        //表示的是标准输入  键盘
        System.out.println(System.in.getClass());
        //System.out 的编译类型是 PrintStream
        //System.out 的运行类型也是 PrintStream
        //表示的是标准输出   显示器
        System.out.println(System.out.getClass());


        System.out.println("你好小赵");
        Scanner scanner = new Scanner(System.in);
        String next = scanner.next();
        System.out.println("next="+next);

    }
}

输出

class java.io.BufferedInputStream
class java.io.PrintStream
你好小赵
小赵最强
next=小赵最强

乱码引出转换流

package com.ghy.transformation;

import java.io.BufferedReader;
import java.io.FileReader;

//看一个中文乱码问题
public class CodeQuestion {
    public static void main(String[] args) throws Exception{
        //读取文件D:\code\LoveStory.txt到程序
        String filePath = "D:\\code\\LoveStory.txt";//路径
        //1.创建字符输入流 BufferedReader (处理流)
        BufferedReader br = new BufferedReader(new FileReader(filePath));
        //2.读取
        //默认情况下,读取文件是按照UTF-8 编码
        String data = br.readLine();
        System.out.println("读取到的内容: "+ data);
        //3.关闭流
        br.close();
    }
}

输出

读取到的内容: 小赵最厉害!
  • 如果文件保存编码如果不是UTF-8就会出现乱码

在这里插入图片描述

再次输出

读取到的内容: С����������

InputStreamReader

在这里插入图片描述

在这里插入图片描述

package com.ghy.transformation;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;

//演示使用 InputStreamReader01 解决中文乱码问题
//将字节流FileInputStream 转换成字符流 InputStreamReader 指定编码gbk
public class InputStreamReader01 {
    public static void main(String[] args) throws Exception{
        //读取文件D:\code\LoveStory.txt到程序
        String filePath = "D:\\code\\LoveStory.txt";//路径
        //1.把 FileInputStream 转成 InputStreamReader
        //2.指定编码gbk
        InputStreamReader ir = new InputStreamReader(new FileInputStream(filePath),"gbk");//看文件编码形式
        //3.把 InputStreamReader 传入 BufferedReader(处理流)
        BufferedReader br = new BufferedReader(ir);
        //4.读取
        String data = br.readLine();
        System.out.println("读取到的内容:"+data);
        //关闭流
        br.close();
    }
}

输出

读取到的内容:小赵最厉害!

OutputStreamWriter

package com.ghy.transformation;

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;

//演示OutputStreamWriter的使用
//将 FileOutputStream 字节流 转换成 OutputStreamWriter 字符流
//指定编码方式 gbk/utf-8/utf8
public class OutputStreamWriter01 {
    public static void main(String[] args) throws  Exception{
        String filePath = "D:\\code\\LoveStory.txt";//路径
         String charSet = "gbk";
        OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream(filePath),charSet);
        BufferedWriter bw = new BufferedWriter(ow);
        ow.write("小赵最强!");
        ow.close();
        System.out.println("按照" +charSet+"保存文件成功!");
    }
}

输出

按照gbk保存文件成功!

在这里插入图片描述

PrintStream

(只有输出流)

package com.ghy.printstream;

import java.io.PrintStream;

//演示PrintStream(字节打印流)
public class PrintStream01 {
    public static void main(String[] args) throws Exception{
        PrintStream out = System.out;
        //在默认情况下,PrintStream输出数据的位置是 标准输出 ,既显示器
        out.print("小赵最棒!");
        //因为print底层使用的是write,所以我们可以直接调用write进行打印(输出)
        out.write("小赵最强!".getBytes());
        out.close();
        //我们可以修改打印流输出的位置/设备
        //修改到某个路径文件
        //System.setOut(new PrintStream(路径));
        //System.out.println("输出的话");
    }
}

输出

小赵最棒!小赵最强!

PrintWriter

package com.ghy.printstream;

import java.io.FileWriter;
import java.io.PrintWriter;

//演示PrintWriter使用方式
public class PrintWriter01 {
    public static void main(String[] args) {
        // 标准输出 : PrintWriter pw = new PrintWriter(System.out);
        //PrintWriter pw = new PrintWriter(new FileWriter(路径));
        PrintWriter pw = new PrintWriter(System.out);
        pw.println("小赵哈喽!");
        pw.close();//flash + 关闭流,才会将数据写入到文件
    }
}

配置文件引出Properties

package com.ghy.properties;

import java.io.BufferedReader;
import java.io.FileReader;

public class Properties01 {
    public static void main(String[] args) throws Exception{
        //读取mysql.properties文件,并得到ip user  pwd
        BufferedReader br = new BufferedReader(new FileReader("src\\mysql.properties"));
        String line =null;
        while((line = br.readLine())!=null){//循环读取
            //如果我们需要得到指定ip的值,需要进行判断,很麻烦
            String[] split = line.split("=");
            System.out.println(split[0]+ "值是:" + split[1]);
        }
        br.close();
    }
}

输出

ip值是:192.168.100.100
user值是:root
pwd值是:123456
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值