`
lzkyo
  • 浏览: 465998 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

文件资源操作

    博客分类:
  • Java
阅读更多

1.访问文件资源

 

     假设有一个文件地位于 Web 应用的类路径下,您可以通过以下方式对这个文件资源进行访问:

  • 通过 FileSystemResource 以文件系统绝对路径的方式进行访问;
  • 通过 ClassPathResource 以类路径的方式进行访问;
  • 通过 ServletContextResource 以相对于Web应用根目录的方式进行访问。

说明:可以通过 getFileName() 获取文件名,通过 getFile() 获取资源对应的 File 对象,通过 getInputStream() 直接获取文件的输入流。此外,您还可以通过 createRelative(String relativePath) 在资源相对地址上创建新的资源。对于位于远程服务器(Web 服务器或 FTP 服务器)的文件资源,您则可以方便地通过 UrlResource 进行访问。

 

2.ResourceUtils 工具类

 

Spring 提供了一个 ResourceUtils 工具类,它支持“classpath:”和“file:”的地址前缀,它能够从指定的地址加载文件资源,ResourceUtils 的 getFile(String resourceLocation) 方法支持带特殊前缀的资源地址。

 

3.本地化文件资源

 

本地化文件资源是一组通过本地化标识名进行特殊命名的文件,Spring 提供的 LocalizedResourceHelper 允许通过文件资源基名和本地化实体获取匹配的本地化文件资源并以 Resource 对象返回。假设在类路径的 i18n 目录下,拥有一组基名为 message 的本地化文件资源,

LocalizedResourceHelper lrHalper = new LocalizedResourceHelper();
    // ① 获取对应美国的本地化文件资源
    Resource msg_us = lrHalper.findLocalizedResource("i18n/message", ".properties", Locale.US);
    // ② 获取对应中国大陆的本地化文件资源
    Resource msg_cn = lrHalper.findLocalizedResource("i18n/message", ".properties", Locale.CHINA);

 

4.FileCopyUtils

 

例子:Resource res = new ClassPathResource("conf/file1.txt");
        // ① 将文件内容拷贝到一个 byte[] 中
        byte[] fileData = FileCopyUtils.copyToByteArray(res.getFile());
        // ② 将文件内容拷贝到一个 String 中
        String fileStr = FileCopyUtils.copyToString(new FileReader(res.getFile()));
        // ③ 将文件内容拷贝到另一个目标文件
        FileCopyUtils.copy(res.getFile(),
        new File(res.getFile().getParent()+ "/file2.txt"));

        // ④ 将文件内容拷贝到一个输出流中
        OutputStream os = new ByteArrayOutputStream();
        FileCopyUtils.copy(res.getInputStream(), os);

 

5.属性文件操作

 

通过 java.util.Properties的load(InputStream inStream) 方法从一个输入流中加载属性资源。Spring 提供的 PropertiesLoaderUtils 允许您直接通过基于类路径的文件地址加载属性资源。

 

// ① jdbc.properties 是位于类路径下的文件
Properties props = PropertiesLoaderUtils.loadAllProperties("jdbc.properties");

static Properties loadProperties(Resource resource) -->从 Resource 中加载属性

 

static void fillProperties(Properties props, Resource resource)-->将 Resource 中的属性数据添加到一个已经存在的 Properties 对象中。

 

6.EncodedResource

 

当您使用 Resource 实现类加载文件资源时,它默认采用操作系统的编码格式。如果文件资源采用了特殊的编码格式(如 UTF-8),则在读取资源内容时必须事先通过 EncodedResource 指定编码格式,否则将会产生中文乱码的问题。

 

Resource res = new ClassPathResource("conf/file1.txt");
// ① 指定文件资源对应的编码格式(UTF-8)
EncodedResource encRes = new EncodedResource(res,"UTF-8");
String content  = FileCopyUtils.copyToString(encRes.getReader());

 

7.使用HTTPClient读取远程文件

 

Java代码 复制代码
  1. public static void read(String url, String diskPath) {   
  2.   
  3.     HttpClient httpClient = new DefaultHttpClient();   
  4.     HttpGet httpGet = new HttpGet(url);   
  5.     HttpResponse response = null;   
  6.   
  7.     try {   
  8.         response = httpClient.execute(httpGet);   
  9.   
  10.         HttpEntity entity = response.getEntity();   
  11.         if (entity != null) {   
  12.             byte[] bytes = EntityUtils.toByteArray(entity);   
  13.             FileOutputStream out = new FileOutputStream(new File(diskPath));   
  14.             out.write(bytes);   
  15.             out.close();   
  16.         }   
  17.   
  18.     } catch (Exception e) {   
  19.         System.err.println(e.getStackTrace());   
  20.     }finally{   
  21.         httpClient.getConnectionManager().shutdown();   
  22.     }   
  23.   
  24. }  
	public static void read(String url, String diskPath) {

		HttpClient httpClient = new DefaultHttpClient();
		HttpGet httpGet = new HttpGet(url);
		HttpResponse response = null;

		try {
			response = httpClient.execute(httpGet);

			HttpEntity entity = response.getEntity();
			if (entity != null) {
				byte[] bytes = EntityUtils.toByteArray(entity);
				FileOutputStream out = new FileOutputStream(new File(diskPath));
				out.write(bytes);
				out.close();
			}

		} catch (Exception e) {
			System.err.println(e.getStackTrace());
		}finally{
			httpClient.getConnectionManager().shutdown();
		}

	}

 8、转码工具native2ascii.exe

      命令行格式:
      native2ascii.exe -[options] [inputfile [outputfile]]

      其中:
  -[options]表示命令开关,有两个选项可供选择:
  -reverse:用Latin-1或Unicode编码把文件转换成本地编码格式
  -encoding encoding_name:要把文件转换的目标编码
  inputfile:表示输入文件全名。
  outputfile:输出文件名。

     

      示例:

      D:\jdk1.5.0_06\bin>native2ascii.exe -encoding utf8 abc.txt bcd.txt 
      D:\jdk1.5.0_06\bin>native2ascii.exe -encoding GBK abc.txt bcd.txt

分享到:
评论

相关推荐

    全套人力资源操作文件及表格

    《全面解读:大公司人力资源操作文件与表格》 在企业管理中,人力资源部门起着至关重要的作用,它负责公司的招聘、培训、薪酬、员工关系等一系列工作。这套“全套人力资源操作文件及表格”是大公司实际运营中的宝贵...

    QT文件资源管理器

    QT文件资源管理器是基于Qt库开发的一款应用程序,它提供了类似于操作系统内置文件管理器的功能,让用户可以浏览、操作和管理本地文件系统。Qt是一个跨平台的C++图形用户界面应用程序开发框架,支持Windows、Linux、...

    操作系统模拟实现Windows文件资源管理器源码+项目说明(Java语言).zip

    操作系统模拟实现Windows文件资源管理器源码+项目说明(Java语言).zip操作系统模拟实现Windows文件资源管理器源码+项目说明(Java语言).zip操作系统模拟实现Windows文件资源管理器源码+项目说明(Java语言).zip...

    file文件资源管理器

    "file文件资源管理器"是一个面向新手的工具,旨在提供基本的磁盘文件操作功能,如复制、移动等。在深入探讨这个主题之前,我们首先理解文件资源管理器的作用。文件资源管理器是操作系统中的一个核心组件,它允许用户...

    MFC实现文件资源管理器示例

    文件资源管理器是操作系统中的一个重要组件,它允许用户浏览、操作(如打开、复制、移动、删除)计算机上的文件和文件夹。在MFC中实现这样的功能,我们需要关注以下几个关键组件: 1. **地址栏**:地址栏显示当前...

    PE文件资源修改工具包

    总的来说,"PE文件资源修改工具包"提供了对PE文件进行深度操作的能力,涵盖了从资源编辑到文件分析的多个方面,对于理解和修改Windows程序的内部工作原理有着重要的作用。使用这些工具,用户可以更自由地定制和优化...

    模拟实现采用二级目录结构的磁盘文件系统中的文件操作

    - **定义**:完成文件操作后,通过“关闭文件”操作释放资源。 - **作用**:确保文件更改被正确保存到磁盘,并释放内存资源。 3. **读文件(Read)**: - **定义**:从文件中读取数据。 - **作用**:将文件中的...

    c#资源文件使用方法

    在C#编程中,资源文件是一个非常重要的概念,它允许开发者在应用程序中嵌入各种类型的数据,如文本、图像、音频、视频等。资源文件的使用可以极大地提高代码的组织性和可维护性,并且便于国际化和本地化。下面将详细...

    exe文件资源提取工具ResourcesExtract

    《exe文件资源提取工具ResourcesExtract详解》 在IT领域中,有时我们需要深入到应用程序的内部,探索并利用其中隐藏的资源。"ResourcesExtract"就是这样一款专业且强大的工具,专为提取exe可执行文件中的各种资源而...

    c#文件操作实现资源管理器的一些功能,实现树形浏览全部文件,并且在LISTVIE显示具体信息,

    总之,通过C#的文件操作API,我们可以构建一个自定义的资源管理器,提供树形浏览文件系统和文件详细信息展示的功能。这不仅锻炼了对文件系统操作的理解,也展示了如何结合使用`TreeView`和`ListView`控件来实现复杂...

    C# 实现Windows文件资源管理器

    总的来说,创建一个C#实现的Windows文件资源管理器需要对C#语法、.NET Framework以及文件系统操作有深入的理解。通过这个项目,开发者不仅可以提升编程技能,还能更好地掌握GUI应用的开发流程。

    pe文件解析:读取pe信息获取文件资源(源码)

    PE文件,全称为Portable Executable,是Windows操作系统中用于执行程序的文件格式。这篇源码主要涉及的是如何解析PE文件并获取其中的资源信息。在Windows系统中,无论是可执行程序(EXE)、动态链接库(DLL)还是...

    资源文件提取工具

    4. **提取操作**:工具将所选资源保存为独立的文件,例如,图标可能被保存为ICO格式,位图保存为BMP格式,字符串表可能保存为TXT或CSV格式。 5. **自定义输出**:用户还可以选择输出路径和文件名,以便组织和管理...

    Python系统编程之文件操作与资源管理

    内容概要:本文介绍了Python在系统编程中的文件操作与资源管理技术,涵盖基础文件操作、高级文件处理、系统编程、系统资源监控和自动化脚本等内容。基础文件操作包括文件的创建、读取、写入、追加和关闭等;高级文件...

    VB中资源文件.res的使用方法详解

    资源编辑器还支持多种其他资源类型的编辑,如图标、字符串等,操作方式类似。 #### 三、加载资源文件中的资源 一旦编辑好资源文件并为其分配了相应的资源ID后,就可以在VB程序中加载并使用这些资源了。VB提供了几...

    文件资源管理器(java)文件打开删除复制粘贴等

    文件资源管理器是用户与计算机系统之间交互的重要接口,它允许用户查看、操作、组织和管理存储在设备上的文件和目录。在Java编程环境中,我们可以构建一个类似的文件资源管理器来实现这些功能。本篇文章将深入探讨...

    java实现的本地文件管理器——仿Windows文件资源管理器

    1. 模仿Windows的文件资源管理器对本机的文件目录树的显示,对文件目录进行查看和浏览,用地址栏、文件目录树、打开文件夹等方法都可以在文件目录之间进行跳转 2. 对文件的基本操作:打开、删除、批量删除、重命名、...

    C#操作文件示例

    C#操作文件示例 C#操作文件示例 目录的随后补上

    C++文件操作

    C++文件操作,介绍得十分详细,包括文本文件操作和二进制文件操作

    操作系统课程设计文件管理系统

    通过课程设计, 加深对操作系统各资源管理模块的理解,掌握操作系统的基本原理及功能,具有初步分析实际操作系统、设计、构造和开发现代操作系统的基本能力。 二、实验题目 1.编写并调试一个树型目录结构的文件系统,...

Global site tag (gtag.js) - Google Analytics