`
lzkyo
  • 浏览: 468158 次
  • 性别: 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文件资源管理器"是一个面向新手的工具,旨在提供基本的磁盘文件操作功能,如复制、移动等。在深入探讨这个主题之前,我们首先理解文件资源管理器的作用。文件资源管理器是操作系统中的一个核心组件,它允许用户...

    PE文件资源修改工具包

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

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

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

    exe文件资源提取工具ResourcesExtract

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

    操作系统c语言模拟文件管理系统

    `fclose()`函数则用于结束文件操作,释放系统资源。 4. **文件读取和写入**:`fread()`和`fwrite()`用于从文件读取和写入数据,而`fgets()`和`fprintf()`则适用于读取和写入字符串。在写入时,需要确保有足够的磁盘...

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

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

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

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

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

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

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

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

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

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

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

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

    DELPHI 资源文件生成器

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

    C++文件操作

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

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

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

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

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

    文件操作实战练习资源

    练习资源练习资源练习资源练习资源练习资源练习资源练习资源练习资源练习资源练习资源练习资源练习资源练习资源

    C# 文件浏览操作控件

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

    asp.net 模仿资源管理器管理文件和文件夹以及文件上传 和把上传

    在ASP.NET中,模仿资源管理器来管理文件和文件夹是一项常见的需求,这通常涉及到文件的浏览、创建、删除、重命名以及上传等操作。在这个项目中,开发者可能使用了自定义控件或者第三方控件来实现类似Windows资源管理...

Global site tag (gtag.js) - Google Analytics