IO流之Properties(String键值对)+序列流+打印流+commons-IO(最终流程)

学了这么多全是给他用的之Commons

用这个的前提需要导包,

①创建lib文件夹

②将下载的commos-io.jar拷贝到lib文件夹

③右键点击commons-io.jar,Build Path→Add to Build Path

然后介绍两个工具类

1.2 FilenameUtils

这个工具类是用来处理文件名,他可以轻松解决不同操作系统文件名称规范不同的问题

l 常用方法:

getExtension(String path):获取文件的扩展名;

getName(String filename):获取文件名;

isExtension(String fileName,String ext):判断fileName是否是ext后缀名;

//明确数据源
        String str="D:\\demo0611\\e.txt";
        //获取后缀名
        String path=FilenameUtils.getExtension(str);
        System.out.println("文件拓展名"+path);
        String name=FilenameUtils.getName(str);
        System.out.println("名字叫"+name);
        boolean flag=FilenameUtils.isExtension("D:\\demo0611\\e.txt","txt");
        System.out.println(flag);

1.1 FileUtils  

提供文件操作(移动文件,读取文件,检查文件是否存在等等)的方法。

l 常用方法:

readFileToString(File file):读取文件内容,并返回一个String;

writeStringToFile(File file,String content):将内容content写入到file中;

copyDirectoryToDirectory(File srcDir,File destDir);文件夹复制

copyFile(File srcFile,File destFile);文件复制

//文件的读取
        File file=new File("D:\\demo0611\\e.txt");
        //读取文件
        String content=FileUtils.readFileToString(file);
        System.out.println(content);

        //复制文件夹
        //明确数据源
        File nowFile=new File("D:\\demo0611\\e.txt");
        //明确目的地
        File afterFile=new File("D:\\demo0611\\a\\vvv.txt");
        //开始复制
        FileUtils.copyFile(nowFile, afterFile);

Properties  String 键值对,属于Hashtable的子类,泛型就是String字符串

存储:setProperty()

获取:getProperty()

比较重要的是load,读取属性

它的主要操作是可以写一个文档来存储成对出现的值。

//用这个集合书写的键值对
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/java0611?characterEncoding=utf8
username=root
password=123456
public static Connection getConn(){
        Properties pro=new Properties();
        try {
            //明确数据源
            FileReader fr=new FileReader("src/com/oracle/tools/db.properties");
            pro.load(fr);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        //直接获取文件即可,以后方便
        //获得链接对象
                String url=pro.getProperty("url");
                String username=pro.getProperty("username");
                String password=pro.getProperty("password");
                //为了返回值,必须把它作为全局变量
                Connection conn=null;
        try {
            //注册驱动
            Class.forName(pro.getProperty("driver"));
            //获得连接对象
             conn=DriverManager.getConnection(url, username, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }


1.1 ObjectOutputStream 对象序列化流

public static void main(String[] args) throws IOException {
        //序列化流,把对象写到文件里
        //明确目的地,必须是字节
        FileOutputStream fos=new FileOutputStream("D:\\demo0611\\person.txt");
        //创建序列化流
        ObjectOutputStream oos=new ObjectOutputStream(fos);
        //向文件中写入对象  有参构造方法,不需要new对象了
        oos.writeObject(new Person("张三",18));
        //释放资源
        oos.close();
    }

1.1 对象反序列化流ObjectInputStream

//反序列化流        //明确数据源        FileInputStream fis=new FileInputStream("D:\\demo0611\\person.txt");        //创建反序列化        ObjectInputStream ois=new ObjectInputStream(fis);        //从文件中读取对象        Object obj=ois.readObject();        //向下转型        if(obj instanceof Person){            Person p=(Person)obj;            //向下转型之后就获取到了Person对象                System.out.println(p);            }        //释放资源        ois.close();    }person类public class Person implements Serializable{    private transient String name;     //不想被序列化修饰    public   static int age;    public static final long serialVersionUID =1000L;     序列化流的关键在于,如果不表示一个序列号那么类一旦变化就会报错,这样就相当于生成了一个标识,获取的就是它。       //有参构造    public Person(String name, int age) {        super();        this.name = name;        this.age = age;    }打印流:

字节打印流 PrintStream


字符打印流 PrintWriter


方法:


void print(String str): 输出任意类型的数据,


void println(String str): 输出任意类型的数据,自动写入换行操作

打出来并自己更新。

原文地址:https://www.cnblogs.com/a199706/p/11474550.html

时间: 2024-07-31 16:04:10

IO流之Properties(String键值对)+序列流+打印流+commons-IO(最终流程)的相关文章

Properties持久化键值对

Properties 特点: 1.HashTable的子类,map集合中的方法都可以用. 2.该集合没有泛型,键值都是字符串. 3.它是一个可以持久化的属性集,键值可以存储到集合中,也可以存储到持久化设备上 键值的来源也可以是持久化设备. import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; pu

java学习--基础知识进阶第十天--标准输入流 & 转换流 & 打印流、对象操作流 、Properties集合

今日内容介绍 u  标准输入流 & 转换流 & 打印流 u  对象操作流 u  Properties集合 第1章 标准输入流 & 转换流 & 打印流 1.1 标准输入输出流 public static final InputStream in:标准输入流 public static final PrintStream out:标准输出流 package com.itheima_05; /* * 标准输入输出流: public static final InputStream

Java基础知识强化之IO流笔记59:打印流

1. 打印流 (1)分类: • 字节打印流   PrintStream • 字符打印流   PrintWriter (2)打印流的特点: • 只能写数据,不能读数据 • 只能操作目的地,不能操作数据源 • 可以操作任意类型的数据 • 如果启动了自动刷新,能够自动刷新 • 可以直接操作文本文件的 (3)附件的问题:哪些对象可以直接操作文本文件的呢?   • FileInputStream   • FileOutputStream      • FileReader      • FileWrite

Java.io.outputstream.PrintStream:打印流

Java.io.outputstream.PrintStream:打印流 1:提供了更多的功能,比如打印方法.可以直接打印任意类型的数据. 2:它有一个自动刷新机制,创建该对象,指定参数,对于指定方法可以自动刷新. 3:它使用的本机默认的字符编码. 4:该流的print方法不抛出IOException. 该对象的构造函数. PrintStream(File file)  :创建具有指定文件且不带自动行刷新的新打印流. PrintStream(File file, String csn) :创建具

第六章——根据执行计划优化性能(3)——键值查找

原文:第六章--根据执行计划优化性能(3)--键值查找 前言: 本文为本系列最后一篇,介绍键值查找的相关知识. 键值查找是具有聚集索引的表上的一个书签查找,键值查找用于SQLServer查询一些非键值列的数据.使用非聚集索引的查询不会有键值查找,但是所有键值查找会伴随非聚集索引出现.这里特别提醒的是键值查找总是伴有嵌套循环关联. 准备工作: 下面将创建一个表,通过执行计划看看键值查找的不同效果.为了产生键值查找,需要两件事情: 1.  聚集索引 2.  非聚集索引 当你在非聚集索引键值上有谓词时

转换流、序列化流、打印流、commons-io、properties

Java中传输最频繁是字符但是传输开始用的是字节流<不能看出传输的是啥>所以又有了字符流(底层为字节流); IO流的分类 |- 字节流 - 字节输入流 InputStream 抽象类 -  FileInputStream 操作文件的字节输入流 - 字节输出流 OuputStream抽象类 - FileOutputStream 操作文件的字节输出流 |- 字符流 - 字符输入流 Reader抽象类 - FileReader 用来操作文件的字符输入流(简便的流) - 字符输出流 Writer抽象类

(一)Python入门-3序列:17字典-核心底层原理-内存分析-存储键值对过程

字典核心底层原理(重要) 字典对象的核心是散列表.散列表是一个稀疏数组(总是有空白元素的数组),数组的 每个单元叫做 bucket.每个 bucket 有两部分:一个是键对象的引用,一个是值对象的引 用. 由于,所有bucket 结构和大小一致,我们可以通过偏移量来读取指定 bucket. 一:将一个键值对放进字典的底层过程 >>> a = {} >>> a["name"]="jack" 假设字典 a对象创建完后,数组长度为 8:

JAVA IO ( 两种打印流 )

<!--字符打印流--> public class CharDemo { public static void main(String[] args) throws Exception { // 创建字符打印流 PrintWriter p = new PrintWriter(new FileWriter(new File("src/打印流_输出流/text.txt"), true)); p.print("黄伟强"); p.println(); p.pri

java 21 - 12 IO流的打印流

打印流 字节流打印流 PrintStream 字符打印流 PrintWriter 打印流的特点: A:只有写数据的,没有读取数据.只能操作目的地,不能操作数据源.(只能写入数据到文件中,而不能从文件中提取数据) B:可以操作任意类型的数据. C:如果启动了自动刷新,能够自动刷新. D:该流是可以直接操作文本文件的. 哪些流对象是可以直接操作文本文件的呢?  FileInputStream  FileOutputStream  FileReader  FileWriter  PrintStream