`
y806839048
  • 浏览: 1126148 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

文件流的操作

阅读更多

 

任何文件都可以转化成流直接操作,或者流再转化成该格式对应的类实例操作

  public static void loadAllFromYaml(String yamlPath) throws Exception {

        if (StringUtils.isEmpty(yamlPath)) {

            return;

        }

        File yamlFile = new File(yamlPath);

        if (!yamlFile.exists()) {

            return;

        }

        if (!yamlFile.isFile()) {

            return;

        }

        if (!yamlFile.canRead()) {

            return;

        }

 

        Yaml yaml = new Yaml();

        HashMap<String, Object> loads = yaml.loadAs(new BufferedReader(new FileReader(yamlFile)), HashMap.class);

        if (!CollectionUtils.isEmpty(loads)) {

            ObjectMapper mapper = new ObjectMapper();

            for (String key : loads.keySet()) {

                CustomDataSource customDataSource = mapper.convertValue(loads.get(key), CustomDataSource.class);

                if (StringUtils.isEmpty(customDataSource.getName()) || StringUtils.isEmpty(customDataSource.getDriver())) {

                    throw new Exception("Load custom datasource error: name or driver cannot be EMPTY");

                }

                if ("null".equals(customDataSource.getName().trim().toLowerCase())) {

                    throw new Exception("Load custom datasource error: invalid name");

                }

                if ("null".equals(customDataSource.getDriver().trim().toLowerCase())) {

                    throw new Exception("Load custom datasource error: invalid driver");

                }

 

                if (StringUtils.isEmpty(customDataSource.getDesc())) {

                    customDataSource.setDesc(customDataSource.getName());

                }

                if ("null".equals(customDataSource.getDesc().trim().toLowerCase())) {

                    customDataSource.setDesc(customDataSource.getName());

                }

 

                if (!StringUtils.isEmpty(customDataSource.getKeyword_prefix()) || !StringUtils.isEmpty(customDataSource.getKeyword_suffix())) {

                    if (StringUtils.isEmpty(customDataSource.getKeyword_prefix()) || StringUtils.isEmpty(customDataSource.getKeyword_suffix())) {

                        throw new Exception("Load custom datasource error: keyword prefixes and suffixes must be configured in pairs.");

                    }

                }

 

                if (!StringUtils.isEmpty(customDataSource.getAlias_prefix()) || !StringUtils.isEmpty(customDataSource.getAlias_suffix())) {

                    if (StringUtils.isEmpty(customDataSource.getAlias_prefix()) || StringUtils.isEmpty(customDataSource.getAlias_suffix())) {

                        throw new Exception("Load custom datasource error: alias prefixes and suffixes must be configured in pairs.");

                    }

                }

 

                List<String> versoins = null;

                if (dataSourceVersoin.containsKey(customDataSource.getName())) {

                    versoins = dataSourceVersoin.get(customDataSource.getName());

                } else {

                    versoins = new ArrayList<>();

                }

                if (StringUtils.isEmpty(customDataSource.getVersion())) {

                    versoins.add(0, JDBC_DATASOURCE_DEFAULT_VERSION);

                } else {

                    versoins.add(customDataSource.getVersion());

                }

 

                if (versoins.size() == 1 && versoins.get(0).equals(JDBC_DATASOURCE_DEFAULT_VERSION)) {

                    versoins.remove(0);

                }

 

                dataSourceVersoin.put(customDataSource.getName(), versoins);

                customDataSourceMap.put(getKey(customDataSource.getName(), customDataSource.getVersion()), customDataSource);

            }

        }

    }

 

分享到:
评论

相关推荐

    文件流操作

    在编程领域,文件流操作是数据输入输出的重要方式,尤其在C++、Java等语言中广泛应用。文件流允许程序员高效地读写文件,处理大量数据。本教程将深入讲解文件流的基本概念、操作方法以及其在实际编程中的应用。 1. ...

    c#关于文件流操作的基本实例

    在C#编程语言中,文件流操作是处理输入/输出(I/O)操作的关键部分,尤其在Windows Forms(WinForm)应用程序中。文件流允许程序读取、写入或追加文件内容,支持多种数据格式,如文本、图像、音频等。下面我们将详细...

    使用文件流操作文本文件是什么以及学习了解使用文件流操作文本文件的意义是什么

    ### 使用文件流操作文本文件的重要性及应用场景 在计算机科学领域,使用文件流操作文本文件是一项基本而关键的技术。本文将详细介绍文件流的概念及其在文本文件处理中的应用,并深入探讨掌握这项技能的重要性和实际...

    C#文件和流操作

    在C#语言中,文件流操作使用FileStream类,需要在文件的开头加入一条导入语句:using System.IO;否则,FileStream类无法使用。 1、创建文件流 使用FileStream fs = new FileStream(path, FileMode.OpenOrCreate)...

    IO文件流操作

    在Java编程语言中,IO(Input/Output)文件流操作是处理数据输入和输出的核心机制。文件流允许程序与磁盘、网络、内存等不同存储介质进行数据交换。本篇文章将详细阐述IO文件流的基本概念、分类、常用类以及如何进行...

    使用文件流操作文本文件.docx

    ### 使用文件流操作文本文件 #### 一、引言 在现代软件开发中,文件操作是一项基础且重要的技能。无论是处理日志文件、配置文件还是简单的数据存储,掌握如何使用文件流来操作文本文件都是必不可少的。文件流提供...

    java文件流操作.docx

    在Java编程语言中,文件流操作是处理输入和输出数据的核心部分,特别是在处理文件时。以下是对标题"java文件流操作.docx"和描述中提到的知识点的详细说明: 1. **字节流(Byte Stream)**: Java中的`InputStream`...

    java文件流操作[定义].pdf

    在Java编程中,文件流操作是处理文件输入和输出的核心技术。文件流允许程序以高效且灵活的方式读写文件内容,无论是文本文件还是二进制文件。本篇文章将详细阐述Java中的文件流操作,包括字节流和字符流的使用。 ...

    C++文件流操作

    ### C++ 文件流操作详解 在C++编程中,文件流操作是一项非常重要的技术,它允许程序员读写文件,从而实现数据的持久化存储。本文将深入探讨C++中的文件流操作,包括基本概念、常用类及方法,并通过具体示例进行说明...

    使用文件流操作文本文件.rar

    文件流操作可能会遇到错误,如文件未找到、权限问题等。C++的文件流对象具有一个bool类型的成员eof(),当文件结束或出现错误时,它会返回true。同时,fail()和bad()方法可以检测更严重的错误,如数据损坏。 六、...

    swift-一款基于Swift3.0的文件流操作库

    本文将深入探讨基于Swift 3.0的文件流操作库——"swift-一款基于Swift3.0的文件流操作库"。 文件流(File Stream)在计算机科学中是指一种处理文件的方式,它允许我们以顺序或随机访问的方式读取或写入文件内容。在...

    winform程序设计合集,文件流操作,菜单栏,登录界面,数据库连接

    本合集聚焦于WinForm程序设计,涵盖了几个关键的知识点:文件流操作、菜单栏设计、登录界面实现以及数据库连接。下面将逐一详细介绍这些主题。 1. **文件流操作**: 文件流是.NET Framework提供的一个基础功能,它...

    C++ 类 链表 文件流操作

    文件流操作是通过`fstream`库实现的,其中包括`ifstream`(输入文件流)用于读取文件,`ofstream`(输出文件流)用于写入文件,以及`fstream`(双向文件流)用于同时读写。通过使用文件流,开发者可以方便地将数据...

    PY使用文件流操作文本文件

    ### 使用Python进行文件流操作详解 #### 一、引言 在Python编程中,文件操作是一项非常基础且重要的技能。无论是处理数据、日志记录还是配置管理,掌握如何有效地使用文件流来读取和写入文件都是必不可少的能力。...

    Java封装继承多态实例以及文件流操作

    在这个实例中,我们将探讨四个关键概念:封装、继承、多态以及文件流操作,这些都是Java中的核心特性,也是理解OOP(面向对象编程)的基础。 首先,**封装**是面向对象编程的核心理念之一,它涉及将数据和方法捆绑...

    微软Java文件流操作.zip

    在Java编程语言中,文件流操作是至关重要的一个部分,特别是在与操作系统进行数据交互时。微软Java文件流操作主要指的是如何使用Java的标准I/O库在Windows环境下读取、写入和处理文件。在这个"微软Java文件流操作....

    C++课件_IO流_二进制文件流操作PPT

    **C++中的IO流与二进制文件流操作** C++是一种强大且灵活的编程语言,其中IO流(Input/Output Stream)系统是处理输入输出的重要组成部分。IO流允许程序与外部设备,如键盘、显示器、文件等进行数据交换。在C++中,...

    Java实践-使用文件流操作文本文件.pdf

    ### Java实践-使用文件流操作文本文件 #### 知识点概述 1. **文件流的概念**:在Java中,文件流是用来处理文件输入输出的基本工具。它支持数据的读取与写入,对于实现数据持久化和进行输入输出操作至关重要。 2. *...

Global site tag (gtag.js) - Google Analytics