`
lzkyo
  • 浏览: 463797 次
  • 性别: 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程序的内部工作原理有着重要的作用。使用这些工具,用户可以更自由地定制和优化...

    c#资源文件使用方法

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

    exe文件资源提取工具ResourcesExtract

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

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

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

    资源文件提取工具

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

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

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

    EXE资源修改器--修改文件内容文件签名等等 强大

    EXE资源修改器是一种工具,专门用于对可执行文件(EXE)进行各种类型的修改,如改变文件内容、调整文件签名等。这类修改器在软件开发、逆向工程和调试过程中可能有所应用,但同时也可能被滥用进行非法操作,如篡改...

    DELPHI 资源文件生成器

    DELPHI资源文件生成器是一款专门针对DELPHI开发环境设计的工具,旨在简化开发者在创建和管理资源文件过程中的繁琐操作。传统的资源文件创建往往需要通过命令行工具brcc32.exe进行,这不仅对新手不友好,而且在频繁的...

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

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

    VB6.0资源管理器-用于文件浏览查看.rar

    VB6.0资源管理器-用于文件浏览查看,可以自动目录遍历,并列出目录下所有文件,选中某一文件可以进行一些属性操作,比如设置是否是隐藏、设置只读、删除、重命名、存档等操作,恢复文件夹的属性,注意使用SetAttr...

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

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

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

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

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

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

    C# 文件浏览操作控件

    7. **方便操作文件**:此控件的设计目标是简化文件操作,使得在应用程序内进行文件管理更加便捷,避免频繁切换到资源管理器。这对于那些需要频繁处理文件的软件(比如编辑器、媒体管理工具等)非常有用。 8. **应用...

    Winform利用资源文件实现多国语言(含源代码)

    本教程将详细讲解如何在Winform应用中利用资源文件实现多国语言切换,并提供相应的源代码供参考。 首先,我们需要理解资源文件在多语言支持中的作用。资源文件是一种特殊类型的文件,用于存储应用程序中的文本字符...

    EXE文件分析器(可以给EXE资源编辑)

    总的来说,EXE文件分析器是一个强大的开发辅助工具,对于那些需要深入挖掘和修改可执行文件资源的人来说,它提供了宝贵的帮助。无论是为了个人项目还是专业开发,掌握如何使用这样的工具都能显著提升工作效率。

Global site tag (gtag.js) - Google Analytics