打印流,Properties,IO流框架

打印流

作用:打印流可以实现方便,高效的打印数据到 文件中去。可以实现打印什么数据就是什么数据,例如打印97就是97,打印boolean的true,就是true

打印流一般指:PrintStream,PrintWrite

PrintStream

package com.itliuxue.d8_printStream;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;

public class PrintDemo01 {
    public static void main(String[] args) throws Exception {

        //续加数据
//        PrintStream ps = new PrintStream(new FileOutputStream("file-io-app\\src\\ps.txt",true));
        PrintStream ps = new PrintStream("D:\\IDEA\\file-io-app\\src\\ps.txt");

        ps.println(97);
        ps.println('a');
        ps.println('r');
        ps.println("我是打印流,想打印什么就是什么");
        ps.close();
    }
}

 PrintWriter

package com.itliuxue.d8_printStream;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;

public class PrintDemo01 {
    public static void main(String[] args) throws Exception {

        //续加数据
//        PrintStream ps = new PrintStream(new FileOutputStream("file-io-app\\src\\ps.txt",true));
 //       PrintStream ps = new PrintStream("D:\\IDEA\\file-io-app\\src\\ps.txt");
       PrintWriter ps = new PrintWriter("D:\\\\IDEA\\\\file-io-app\\\\src\\\\ps.txt");

        ps.println(97);
        ps.println('a');
        ps.println('r');
        ps.println("我是打印流,想打印什么就是什么");


       ps.println("我在学习!");
        ps.close();
    }
}

 PrintStream和PrintWriter的区别

 总结

 扩展:输出语句重定向

属于打印流的一种应用,可以将输出语句的打印位置改到文件

package com.itliuxue.d8_printStream;

import java.io.FileNotFoundException;
import java.io.PrintStream;

public class PrintDemo02 {
    public static void main(String[] args) throws Exception {
        System.out.println("锦瑟无端五十弦");
        System.out.println("一弦一度思华年");

//        改变输出方向的位置
        PrintStream ps = new PrintStream("D:\\\\IDEA\\\\file-io-app\\\\src\\log.txt");
        System.setOut(ps);

        System.out.println("庄生晓梦迷蝴蝶");
        System.out.println("望帝春心托杜鹃");
    }
}

 补充知识:Properties

Properties属性集对象

就是一个Map集合,但是我们一般不当作集合使用,因为有HashMap

Properties的核心作用

Properties是一个属性文件,可以将自己对象中的键值对信息存到一个属性文件中去

属性文件;后缀是.properties结尾的文件,里面的内容都是key=value,后续做系统配置信息的

Properties的常用API

//用Properties把键值对信息存入属性文件中 

package com.itliuxue.d9_properties;

import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
//用Properties把键值对信息存入属性文件中
public class PropertiesDemo01 {
    public static void main(String[] args) throws Exception {
        Properties p = new Properties();
        p.setProperty("itliu","123456");
        p.setProperty("itxue","456789");
        p.setProperty("curry","666");
       System.out.println(p);
/*
        参数一:保存管道,字符输出流管道
        参数二:保存心得
 */
        p.store(new FileWriter("D:\\IDEA\\file-io-app\\src\\usuer.properties"),
                "this is user.i am happy");

    }
}

//Properties读取属性文件中的键值对信息 

package com.itliuxue.d9_properties;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Properties;

public class PropertiesDemo02 {
    //Properties读取属性文件中的键值对信息
    public static void main(String[] args) throws Exception {
        Properties properties = new Properties();
        System.out.println(properties);

        properties.load(new FileReader("D:\\IDEA\\file-io-app\\src\\usuer.properties"));

        System.out.println(properties);


        String rs = properties.getProperty("itxue");
        System.out.println(rs);
    }
}

总结

补充知识:IO流框架 

common-io概述

common-io是apache开源基金组织提供的一组有关io操作的类库,可以提高IO功能开发的效率

common-io工具包提供了很多有关io操作的类主要有两个类FileUtils,IOUtils

FileUtiles主要有如下方法

package d10_commons_io;

import org.apache.commons.io.IOUtils;


import java.io.FileInputStream;
import java.io.FileOutputStream;

public class CommonsIODemo01 {
    public static void main(String[] args) throws Exception{
        IOUtils.copy(new FileInputStream("C:\\Users\\LIUXUE\\Desktop\\新建文件夹\\微信图片_20211105191707.jpg"),new FileOutputStream("C:\\Users\\LIUXUE\\Desktop\\新建文件夹\\copy.jpg"));

    }
}

JDK1.7自己也做了一些一行代码完成复制的操作:New IO的技术

但其不支持非空文件夹的删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值