我给你写个方法,参数是2个字符串,第一个写原文件的全路径,第二个写目标文件的全路进。 你试试吧
public void copy(String fromFilePath, String toFilePath) {
try {
FileInputStream fis = new FileInputStream(fromFilePath)
FileOutputStream fos = new FileOutputStream(toFilePath)
byte[] b = new byte[100]
try {
while (fis.read(b) != (-1)) {
fos.write(b)
}
if (fis != null) {
fis.close()
fis = null
}
if (fos != null) {
fos.flush()
fos.close()
fos = null
}
} catch (IOException e) {
System.out.println("io异常")
}
} catch (FileNotFoundException e) {
System.out.println("源文件不存在")
}
public static void main(String[] args) {
//自己把路径补齐,别忘了!!!!!!!!!!!!!!!!
String fromFilePath=" " // 源文件的全路径。 比方"d://myphoto//nihao.mp3"
String toFilePath=" "//目标文件的全路劲。 如果不存在会自动建立,如存在则在文件尾继续添加
new CopyTest().copy(fromFilePath, toFilePath)
}
}
import java.io.BufferedWriterimport java.io.FileOutputStreamimport java.io.FileWriterimport java.io.IOExceptionimport java.io.OutputStreamWriterimport java.io.RandomAccessFilepublic class WriteStreamAppend { public static void method1(String file, String conent) { BufferedWriter out = nulltry { out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(file, true)))out.write(conent)} catch (Exception e) { e.printStackTrace()} finally { try { out.close()} catch (IOException e) { e.printStackTrace()} } } public static void method2(String fileName, String content) { try { // 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件 FileWriter writer = new FileWriter(fileName, true)writer.write(content)writer.close()} catch (IOException e) { e.printStackTrace()} } public static void method3(String fileName, String content) { try { // 打开一个随机访问文件流,按读写方式 RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw")// 文件长度,字节数 long fileLength = randomFile.length()// 将写文件指针移到文件尾。 randomFile.seek(fileLength)randomFile.writeBytes(content)randomFile.close()} catch (IOException e) { e.printStackTrace()} } public static void main(String[] args) { System.out.println("start")method1("c:/test.txt", "追加到文件的末尾")System.out.println("end")} String srcDir = "srcfiles"String desDir = "desfiles"
// copy --> only directory and .java file
IOFileFilter javaSuffixFilter = FileFilterUtils
.suffixFileFilter(".java")
IOFileFilter javaFiles = FileFilterUtils.and(FileFileFilter.FILE,
javaSuffixFilter)
FileFilter filter = FileFilterUtils.or(DirectoryFileFilter.DIRECTORY,
javaFiles)
try {
FileUtils.copyDirectory(new File(srcDir), new File(desDir), filter)
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
// change suffix .java --> .txt
Iterator<File> it = FileUtils.iterateFiles(new File(desDir),
ArrayUtils.add(null, "java"), true)
for ( it.hasNext()) {
File f = it.next()
String absolutePath = f.getAbsolutePath()
f.renameTo(new File(FilenameUtils.getFullPath(absolutePath)
+ FilenameUtils.getBaseName(absolutePath) + ".txt"))
}
指定源目录和目标目录
会复制文件夹下以及子文件夹下的.java文件, 非.java文件不会复制
复制过去后会改后缀名
需要commons-io
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)