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

处理properties文件,copy文件

 
阅读更多
<!--StartFragment -->
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;


public class ContextLoad {

public static void main(String args[]) {

//上下文加载
// ClassPathXmlApplicationContext appContext = null;
//     appContext = new ClassPathXmlApplicationContext(
//             new String[] {"system-architecture-research.xml"});
//     
//     BeanFactory factory = (BeanFactory) appContext;
//     System.out.println(factory.getBean("dataSource"));
//     System.out.println(factory.getBean("dataSource").getClass());

//得到系统换行符
// String rn = System.getProperty("line.separator");
// System.out.println("here is "+rn+" test!");

//properties文件路径src/test/test.properties
// InputStream in = Thread.currentThread().getClass().getResourceAsStream("/test/test.properties");
// Properties p = new Properties();
// try {
// if(in==null){
// System.out.println("load file error !");
// }else{
// p.load(in);
// System.out.println(p);
// System.out.println("############################");
// //文件所有的key值
// Enumeration enu = p.propertyNames();     //取出所有的key
// while( enu .hasMoreElements()){
// String temp = (String) enu.nextElement();
//     System.out.println("key="+ temp);
//     System.out.println("value="+p.getProperty(temp));
// }
// System.out.println("############################");
// }
//
// } catch (IOException e) {
// e.printStackTrace();
// }
File source = new File("D:/aaa/");
File target = new File("D:b/ccc/");

copyFile(source,target);
}

/**
 * 拷贝文件到目的地址,这里目的地址是一个目录
 * @param source
 * @param target
 * 源路径的文件(可能是不同文件层次结构的)都拷贝到了目标地址的同一个目录下
 */
public static void copyFile(File source,File target){

File targetCopy = new File(target,source.getName());
if(source.exists()){//文件或目录存在

System.out.println("copy的文件或者目录存在!!!");
if(!target.exists()){
//mkdir无法创建多级目录
target.mkdirs();//创建多级目录
}

if(source.isFile()){

InputStream in = null;
OutputStream out = null;
try {
//这里的对象必须是一个文件字符串,如果是目录,则相当于找不到file
in = new FileInputStream(source);
out = new FileOutputStream(targetCopy);
@SuppressWarnings("unused")
int readReturn;
int cacheLen = 1024;
byte cache[] = new byte[cacheLen];
//每次读取1024字节的内容到内存中,也就是1M
while((readReturn = in.read(cache)) != -1){
out.write(cache, 0,cacheLen);
out.flush();
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{

//对于处理流,中间可能存在一些匿名的流
//最终关闭处理流即可,被包装的流会相应的关闭
try {
if(in !=null){
//在try语句初始化in时可能存在异常
//那么in就==null,所以要进行if判断
in.close();
}
if(out !=null){
out.close();//close方法里封装了flush方法
}
} catch (IOException e) {
e.printStackTrace();
}
}

}else if(source.isDirectory()){
//如果是目录,则递归拷贝
File dirs[] = source.listFiles();
for(int i=0;i<dirs.length;i++){
copyFile(dirs[i],target);
}
}

}else{
System.out.println("copy的文件或者目录不存在!!!");
}
}

}
分享到:
评论

相关推荐

    CopyPath v1.0, Copy paths of the selected files, (新增右键支持复制多文件路径)

    [Win] CopyPath - Copy paths of the selected files This utility is a windows shell extension, which adds "Copy Path" menu item to the shell's context menu. When you select some files, right click ...

    windows平台上Netbackup软件通过两种方式处理打开文件的备份实用.pdf

    Windows平台上的NetBackup软件在处理打开文件备份时采用了两种主要技术:Volume Snapshot Provider (VSP)和Volume Shadow Copy Service (VSS)。这两种方法都旨在解决在文件被其他应用程序占用时进行备份的问题。 ...

    java解析资源文件

    本教程将深入讲解如何在Java中处理资源文件,以及使用jbom解析工具的相关知识。 首先,理解资源文件的定位。在Java应用中,资源文件通常位于`src/main/resources`目录下(对于Maven或Gradle项目)。这些文件会被...

    Spring文件的上传和下载

    例如,有一个名为`application.properties`的文件,其中包含文件存储路径: ```properties file.upload.path=/path/to/upload ``` 我们可以在控制器或服务类中注入这些属性: ```java @Component public ...

    C# API获取文件信息

    2. `CopyTo(string destFileName)`: 将文件复制到指定的位置。 3. `Delete()`: 删除文件。 如果你需要获取更深层次的文件元数据,例如图标或文件类型,可能需要使用其他API或第三方库。Windows API Code Pack提供了...

    Struts2+上传文件源码

    在Struts2中,文件上传是通过`Commons FileUpload`库来处理的,这是一个Apache提供的开源组件,专门用于处理multipart/form-data类型的表单数据,也就是通常用于文件上传的表单类型。在Struts2的Action类中,我们...

    生成和下载excel文件 生成和下载excel文件

    3. **错误处理**:为了提高程序的健壮性和用户体验,在编写代码时应添加适当的异常处理逻辑,例如捕获并记录可能出现的数据库连接异常、文件操作异常等。 通过上述步骤,我们可以顺利地实现从数据库中获取数据、...

    windows平台上Netbackup软件通过两种方式处理打开文件的备份.pdf

    Windows平台上的NetBackup软件在处理打开文件备份时采用了两种主要技术:Volume Snapshot Provider (VSP)和Volume Shadow Copy Service (VSS)。这两种方法都是为了在文件被其他进程占用时仍能够进行完整的备份。 ...

    将exe文件做成资源文件(加壳)

    在IT行业中,"加壳"是指对可执行文件(如EXE)进行处理,将其内容包装在一个外壳程序中,以实现各种目的,如保护原文件免受反编译、调试或病毒攻击,或者添加额外的功能。在C#编程环境下,我们可以使用特定的工具和...

    如何编写批处理文件批处理文件批处理文件

    下一个文件之前,每份文件都已被打开、读取并经过处理。 处理包括读取文件,将其分成一行行的文字,然后将每行 解析成零或更多的符号。然后用已找到的符号字符串变量值 调用 For 循环。以默认方式,/F 通过每个...

    excel数据copy工具

    "configure.properties"可能是一个配置文件,用户可以在这里设置工具的各种参数,比如源文件路径、目标文件路径、数据处理规则等。"说明.txt"则包含工具的使用指南和帮助信息,用户可以通过阅读它来了解如何操作工具...

    java文件操作大全.pdf

    9. 写入随机文件:`RandomAccessFile` 类允许在文件的任意位置进行读写,常用于大文件处理。 10. 读取文件属性:`File` 类提供了获取文件属性的方法,如 `exists()`, `isDirectory()`, `length()` 获取文件大小,`...

    ssh文件上传下载

    这些信息可以在配置文件中找到,这通常是指应用的配置文件,如`.properties`或`.xml`文件,它们定义了应用运行时所需的参数和设置。 6. **Tomcat应用服务器** Tomcat是Apache软件基金会的一个开源项目,是一个符合...

    Ant构建文件

    每个任务由一系列`&lt;task&gt;`组成,比如`&lt;javac&gt;`用于编译Java源码,`&lt;jar&gt;`用于打包成JAR文件,`&lt;copy&gt;`用于复制文件等。 构建文件的结构通常包括以下部分: - **属性(Properties)**:用于存储和传递值,如版本号、...

    Ant 配置文件详解

    它可以包含文件或目录,通常用在需要处理一批文件的任务中。例如: ```xml &lt;copy todir="${dist.dir}"&gt; ${build.dir}"&gt; **/*.class"/&gt; &lt;/copy&gt; ``` 这段代码会将`build.dir`目录下的所有`.class`文件复制到`...

    solr所需配置文件

    8. **core.properties**: 每个Solr核心都有一个core.properties文件,用于标识核心的名字和位置。 9. **Tika配置文件**(如tika-config.xml):如果你使用Tika解析器来处理多种格式的文件,Tika的配置文件将定义...

    C#实现的简单文件备份工具(源码)

    例如,`File.Copy()`方法用于复制文件,`Directory.CreateDirectory()`方法则用于创建新的目录。对于文件的压缩,可能利用了`System.IO.Compression.ZipFile`或第三方库如SharpZipLib,这些库提供了压缩和解压缩文件...

Global site tag (gtag.js) - Google Analytics