http://blog.chinaunix.net/u/17347/showart.php?id=103523
实现文件对拷,开始是写了一个函数,但一想,要复用就要以类为单位,故写成一个文件类,现只提供一个文件到文件的拷贝函数,以后再进行扩充!(在下面已经提交了改进后的代码)
/*
* myFile.java
*
* Created on 2006年4月22日, 下午7:22
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
* myFile.java
*
* Created on 2006年4月22日, 下午7:22
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package myUrl;
import java.io.*;
import java.io.*;
/**
*
* @author flying
*/
public class myFile {
/** Creates a new instance of myFile */
public myFile() {
}
public void SaveFileToFile(String F1,String F2){
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream(new File(F1)); //建立文件输入流
File file = new File(F2);
fos = new FileOutputStream(F2);
int r;
while((r=fis.read())!=-1){
fos.write((byte)r);
}
}
catch(FileNotFoundException ex){
System.out.println("Source File not found:"+F1);
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
finally{
try{
if(fis!=null) fis.close();
if(fos!=null) fos.close();
}
catch(IOException ex){
System.out.println(ex);
}
}
}
}
*
* @author flying
*/
public class myFile {
/** Creates a new instance of myFile */
public myFile() {
}
public void SaveFileToFile(String F1,String F2){
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream(new File(F1)); //建立文件输入流
File file = new File(F2);
fos = new FileOutputStream(F2);
int r;
while((r=fis.read())!=-1){
fos.write((byte)r);
}
}
catch(FileNotFoundException ex){
System.out.println("Source File not found:"+F1);
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
finally{
try{
if(fis!=null) fis.close();
if(fos!=null) fos.close();
}
catch(IOException ex){
System.out.println(ex);
}
}
}
}
进一步改进,试用了好几种方法,留下了三种方法供参考:
package myUrl;
import java.io.*;
import java.io.*;
/**
*
* @author flying
*/
public class myFile {
final int bufSize = 4096;
/** Creates a new instance of myFile */
public myFile() {
}
public String displayFile(String file){
String str="";
String inLine="";
BufferedReader infile = null;
try{
infile=new BufferedReader(new FileReader(file));
while((inLine=infile.readLine())!=null){
str=str+(inLine + '/n');
}
}
catch(FileNotFoundException ex){
System.out.println("Source File not found:"+file);
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
finally{
try{
if(infile!=null) infile.close();
}
catch(IOException ex){
System.out.println(ex);
}
}
return str;
}
public void saveFileToFileText(String F1,String F2){ //处理文本文件没有问题,但是处理.mdb出现了问题.可能就是分隔符引起的.
String inLine="";
BufferedReader infile = null;
BufferedWriter outfile = null;
try{
infile=new BufferedReader(new FileReader(F1));
outfile=new BufferedWriter(new FileWriter(F2));
while((inLine=infile.readLine())!=null){
outfile.write(inLine);
outfile.newLine();
}
}
catch(FileNotFoundException ex){
System.out.println("Source File not found:"+F1);
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
finally{
try{
if(infile!=null) infile.close(); //一定要进行文件的关闭,否则在新文件会是空的!
if(outfile!=null) outfile.close();
}
catch(IOException ex){
System.out.println(ex);
}
}
}
public void saveFileToFile(String F1,String F2){ //实现文件对拷,从F1拷贝到F2,若F2存在则会被覆盖;适用于任何文件.
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream(new File(F1)); //建立文件输入流
File file = new File(F2);
fos = new FileOutputStream(F2);
byte[] buffer=new byte[bufSize];
int len;
while((len=fis.read(buffer))!=-1){
fos.write(buffer,0,len);
}
}
catch(FileNotFoundException ex){
System.out.println("Source File not found:"+F1);
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
finally{
try{
if(fis!=null) fis.close(); //一定要进行文件的关闭,否则在新文件会是空的!
if(fos!=null) fos.close();
}
catch(IOException ex){
System.out.println(ex);
}
}
}
public void saveFileToFileOneByte(String F1,String F2){ //实现文件对拷,从F1拷贝到F2,若F2存在则会被覆盖;适用于任何文件.
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream(new File(F1)); //建立文件输入流
File file = new File(F2);
fos = new FileOutputStream(F2);
int r;
while((r=fis.read())!=-1){
fos.write((byte)r);
}
}
catch(FileNotFoundException ex){
System.out.println("Source File not found:"+F1);
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
finally{
try{
if(fis!=null) fis.close(); //一定要进行文件的关闭,否则在新文件会是空的!
if(fos!=null) fos.close();
}
catch(IOException ex){
System.out.println(ex);
}
}
}
}
*
* @author flying
*/
public class myFile {
final int bufSize = 4096;
/** Creates a new instance of myFile */
public myFile() {
}
public String displayFile(String file){
String str="";
String inLine="";
BufferedReader infile = null;
try{
infile=new BufferedReader(new FileReader(file));
while((inLine=infile.readLine())!=null){
str=str+(inLine + '/n');
}
}
catch(FileNotFoundException ex){
System.out.println("Source File not found:"+file);
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
finally{
try{
if(infile!=null) infile.close();
}
catch(IOException ex){
System.out.println(ex);
}
}
return str;
}
public void saveFileToFileText(String F1,String F2){ //处理文本文件没有问题,但是处理.mdb出现了问题.可能就是分隔符引起的.
String inLine="";
BufferedReader infile = null;
BufferedWriter outfile = null;
try{
infile=new BufferedReader(new FileReader(F1));
outfile=new BufferedWriter(new FileWriter(F2));
while((inLine=infile.readLine())!=null){
outfile.write(inLine);
outfile.newLine();
}
}
catch(FileNotFoundException ex){
System.out.println("Source File not found:"+F1);
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
finally{
try{
if(infile!=null) infile.close(); //一定要进行文件的关闭,否则在新文件会是空的!
if(outfile!=null) outfile.close();
}
catch(IOException ex){
System.out.println(ex);
}
}
}
public void saveFileToFile(String F1,String F2){ //实现文件对拷,从F1拷贝到F2,若F2存在则会被覆盖;适用于任何文件.
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream(new File(F1)); //建立文件输入流
File file = new File(F2);
fos = new FileOutputStream(F2);
byte[] buffer=new byte[bufSize];
int len;
while((len=fis.read(buffer))!=-1){
fos.write(buffer,0,len);
}
}
catch(FileNotFoundException ex){
System.out.println("Source File not found:"+F1);
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
finally{
try{
if(fis!=null) fis.close(); //一定要进行文件的关闭,否则在新文件会是空的!
if(fos!=null) fos.close();
}
catch(IOException ex){
System.out.println(ex);
}
}
}
public void saveFileToFileOneByte(String F1,String F2){ //实现文件对拷,从F1拷贝到F2,若F2存在则会被覆盖;适用于任何文件.
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream(new File(F1)); //建立文件输入流
File file = new File(F2);
fos = new FileOutputStream(F2);
int r;
while((r=fis.read())!=-1){
fos.write((byte)r);
}
}
catch(FileNotFoundException ex){
System.out.println("Source File not found:"+F1);
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
finally{
try{
if(fis!=null) fis.close(); //一定要进行文件的关闭,否则在新文件会是空的!
if(fos!=null) fos.close();
}
catch(IOException ex){
System.out.println(ex);
}
}
}
}