分享复制文件,并将文件扩展名更改为.txt

这是我自己的一种做法:

就是将一个文件下的所有.java文件复制到另一个文件,复制成功后,并将刚刚复制过去的文件改成.txt

思路:首先我们要明确我们要获取的源,并明确我们要存储的目的。

然后对源下面的文件进行遍历,如果是.java的文件就进行读取,并复制到目的。

复制成功后需要更改扩展名,那么我们在复制的时候定义一个变量,记录住每一个复制过去的文件名,

并用集合进行存储,在对集合进行遍历,将集合中的文件名的后缀更改为.txt,并进行封装成对象,

在对目的中的文件进行更改即可。

package pack;
import java.io.*;
import java.util.*;
class CopyFileRename{
	public static void main(String[] args)throws IOException{
		File dir=new File("E:\\JAVASE\\JAVA复习代码\\");// 明确要操作的源。
		File filename=new File("E:\\");// 明确要存储的位置
		renameToFile(dir,filename);// 调用方法,进行复制改名操作
	}
	private static void renameToFile(File dir,File filename)throws IOException{// 该方法接收一个源和目的。
		File[] files=dir.listFiles();// 将接收到的源下的所有文件封装成数组。
		ArrayList<String>al=new ArrayList<String>();// 该集合用于存储每一次要复制时的路径。
		FileInputStream fis;// 字节读取流,用于读取源下的文件。
		FileOutputStream fos;// 字节输出流,将获取到的文件写入到目的。
		for(File file: files){// 对数组进行变量,并进行条件判断,
			if(file.isDirectory())
				renameToFile(file,filename);// 如果该文件是个目录,就再次调用此方法,
			else
				if(file.getName().endsWith(".java")){// 如果该文件是.java,就进行复制,
					String name=filename+file.getName();// 该变量用于记录复制文件的路径
					al.add(name);// 将路径添加进集合
					fis=new FileInputStream(file);// 读取file文件
					fos=new FileOutputStream(name);// 写入目的。
					int len=0;
					byte[] buf=new byte[1024];
					while((len=fis.read(buf))!=-1){
						fos.write(buf,0,len);
					}
					fis.close();
					fos.close();
				}
		}
		try{// 为了看到现象,在复制后成功后等待两秒。
			Thread.sleep(2000);
		}catch(Exception e){}
		for(int x=0; x<al.size(); x++){// 对集合进行变量
			File file=new File(al.get(x));// 将集合内容封装成file对象。
			String strName=file.getName();// 获取该file对象的名称。
			String newName=strName.replace(".java",".txt");// 将获取到的名称的后缀替换成.txt
			File newFile=new File(filename,newName);// 将替换后的名称封装成一个新的路径。
			try{// 为了看到改名的操作,每一秒。改一个。
				Thread.sleep(1000);
			}catch(Exception e){}
			file.renameTo(newFile);// 改名操作
		}
	}
}
时间: 2024-10-05 04:58:38

分享复制文件,并将文件扩展名更改为.txt的相关文章

解决SharePoint下载文件时自动修改扩展名的问题

今天,有人告诉了我一个有趣的问题.当用户将一个扩展名为.ai的文件(Adobe illustrator格式的文件)上载到SharePoint 2013文档库中之后,点击它下载时,下载提示栏所显示的文件名的扩展名,却被修改为了.ps. ? ? 这是一个挺有意思的问题.要解决它,请按照下面的步骤在SharePoint服务器上进行配置即可. ? 第一步:让SharePoint识别.ai文件 ? 嗯,实际上,第一步对于解决上面所说的问题,并不是必需的,你完全可以直接跳到第二步.但是这个步骤可以让Shar

解决教学平台上文件中存在无扩展名BUG的办法

Jfinal中添加过滤器声明 public void configHandler(Handlers me) { me.add(new XssHandler()); } 过滤器 package com.demo.common.config; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; impo

Java获取文件的类型(扩展名)

File file=new File("E:\\aa.jpg"); String fileName=file.getName(); String fileTyle=fileName.substring(fileName.lastIndexOf("."),fileName.length()); System.out.println(fileTyle); 程序运行效果图:

Shell获取文件的文件名和扩展名的例子

basename example.tar.gz .tar.gz # => example FILE="example.tar.gz" echo "${FILE%%.*}" # => example echo "${FILE%.*}" # => example.tar echo "${FILE#*.}" # => tar.gz echo "${FILE##*.}" # => gz

java 复制指定后缀名文件并修改其后缀名

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FilenameFilter; import java.util.ArrayList; import java.util.List; /** * 将c:\cn目录下的所有.java文件复制到c:\test目录下,并将原来文件的扩展名从.java改为.wl. * @author wl * @time

Visual C++ 编译器自动假定带 .C 扩展名的文件是 C 文件而不是 C++ 文件,并且拒绝 C++ 语法和关键字(c语言只能在大括号最前面申明变量)

今天在编译OpenGL红宝书附带源码中的light.c文件时遇到一个诡异的问题: 如图light .c,在不做任何修改的情况编译OK.然而只要在某些地方写了可执行代码,则会无法通过编译器编译! (这几行代码如果写在main函数里的第一句则OK) 我用的VS08.我把该文件发给其他朋友(用的VS10),同样也是这样的问题. 然而,我把文件名改成light.cpp后,问题解决了. 现在的问题是,代码文件按的后缀背后,会如何影响编辑器的编译呢? 可以做一个简单的测试: [cpp] view plain

常用文件扩展名

http://baike.baidu.com/view/579392.htm ISO:镜像文件 RAR:压缩包 html:网页 zip:压缩包 exe:安装包 pdf:pdf文档 rm:视频文件 avi:视频文件 tmp:临时文件 xls:excel工作表 mdf:虚拟光驱镜像文件 txt:记事本 doc:word文档 MID:声卡声乐文件 文件类型 扩展名及打开方式 文档文件 txt(所有文字处理软件或编辑器都可打开).doc(word及wps等软件可打开).hlp(adobe acrobat

Python os模块实例之遍历目录及子目录指定扩展名的文件

需求:在该目录下有很多子目录(如下图,截图了部分),现要从该目录和所有子目录下找到所有扩展名为.meta的文件,并获取文件中第二行guid的值(': '后面的),然后将所有guid的值输出到另一文件中 .meta文件截图: 思路: 遍历当前目录的子目录,如果是文件并且扩展名为.meta,获取guid,写入到guid.txt:如果是子目录,则遍历子目录下的文件. 方法一: #!usr/bin/env python # -*- coding: utf-8 -*- import os outfile

NO21 Llinux的文件种类与扩展名--文件权限--硬链接

Linux的文件种类与扩展名 一.文件种类:1.普通文件(regular file)第一个字符为[ - ]包括:①纯文本档(ASCII):这是Linux系统中最多的一种文件类型,称为纯文本档.是因为内容为我们人类可以直接读到的数据,例如数字.字母等等.②二进制文件(binary): 你的Linux中的可执行文件(scripts, 文字型批处理文件不算)就是这种格式的.③数据格式文件(data):有些程序在运作的过程当中会读取某些特定格式的档案,那些特定格式的档案可以被称为数据文件 (data f