java 如何实现把一个文件同时上传到两个固定地址的服务器上,最好有代码,在这里提前谢谢各位了!

java 如何实现把一个文件同时上传到两个固定地址的服务器上,最好有代码,在这里提前谢谢各位了!,第1张

据我的能力理解不太能同时实现。

我讲下我的实现思路:

1,你有一台作为接收,文件上传至此, 得到file1;

2,file1,输出到另一台机器 建议采用(ftp协议),至于是同步还是异步执行无关紧要。

3,其他逻辑。

这个你需要了解git的基本操作:不错的git教程:网页链接

对于你上面说的问题:

1、你需要把你新加的文件add到本地

2、提交commit到本地仓库

3、推送push到远程仓库

希望可以帮到你,如果不理解可以追问

这个是我写的三个类,用于多线程操作读取文件内容和写入文件内容,不知道是不是你合你味口。

________________第一个类______读取内容__写入内容____________________

package pro;

import javaio;

public class ReadFileToWriteOtherFile {

private File oldFile;

private File newFile;

private BufferedReader br;

private BufferedWriter bw;

private String totalString="";

private Boolean flag=true; //用于标记文件名是否存在 true表示存在

public ReadFileToWriteOtherFile()

{

oldFile=null;

newFile=null;

br=null;

bw=null;

Systemoutprintln("初始化成功");

}

public void readInfoFromFile(String fileName)

{

Systemoutprintln("开始读取");

try

{

oldFile=new File(fileName);

if(oldFileexists()) //如果文件存在

{

Systemoutprintln("存在");

br=new BufferedReader(new FileReader(oldFile));

String info=brreadLine(); //读取一行

while(info!=null)

{

totalString+=info; //将读取到的一行添加到totalString中

info=brreadLine(); //再读取下一行

//Systemoutprintln(totalString);

}

Systemoutprintln("读取完成,准备写入…………");

}

else //如果文件不存在

{

Systemoutprintln("文件不存在");

flag=false; //标记该文件不存在

}

// Systemoutprintln("totalString="+totalString);

}

catch(FileNotFoundException e)

{

Systemoutprintln(e);Systemoutprintln("开始读取中1");

}

catch(IOException e)

{Systemoutprintln(e);Systemoutprintln("开始读取中2");}

}

public void writeInfoToFile(String fileName)

{

if(!flag) //如果标记前面的文件不存在,则return

{

flag=true; //改回原来的文件标记符

return;

}

try

{

newFile=new File(fileName);

if(newFileexists()) //如果存在,不用创建新文件

{

Systemoutprintln("文件存在,可以写入!");

}

else //如果不存在,则创建一个新文件

{

Systemoutprintln("文件不存在,准备创建新文件");

newFilecreateNewFile();

Systemoutprintln("文件创建成功,可以写入");

}

bw=new BufferedWriter(new FileWriter(newFile,true));

// Systemoutprintln("totalString="+totalString);

bwwrite(totalString,0,totalStringlength());

bwflush(); //刷新缓冲区

Systemoutprintln("写入完成");

totalString="\r\t"; //清空原来的字符串

}

catch(FileNotFoundException e)

{Systemoutprintln(e);}

catch(IOException e)

{Systemoutprintln(e);}

}

}

________________第二个类______一个自定义的线程类____________________

package pro;

import javalangThread;

public class MyThread extends Thread

{

private int index; //用于数组的位置

private String[] fileNames; //定义一个字符串数组

ReadFileToWriteOtherFile bftwo=new ReadFileToWriteOtherFile(); //定义前面的自定义类

public MyThread(String[] fileNames,int index) //index表示数组位置标号

{

thisindex=index;

thisfileNames=fileNames;

}

public void run()

{

bftworeadInfoFromFile(fileNames[index]);//传入数组中的字符串参数

bftwowriteInfoToFile("btxt"); //传入写入的目的地文件

//index++; //数组位置加1

Systemoutprintln("==============");//分隔线

}

}

________________第三个类______主程序____________________

package pro;

//import orgspringframeworkcontextApplicationContext;

//import orgspringframeworkcontextsupportClassPathXmlApplicationContext;

import javaio;

public class BeanRunApp {

/

Method main

@param args

/

public static void main(String[] args)

{

/ ApplicationContext apc=new ClassPathXmlApplicationContext("beansxml");

ClassRoom croom=(ClassRoom)apcgetBean("classRoom");

croomout();

Systemoutprintln("over");

/

long startTime=SystemcurrentTimeMillis();

String[] a={"atxt","ctxt","dtxt","etxt"}; //用一个符品数组保存文件名

for(int i=0;i<alength;i++) //用数组的长度来作为循环条件

{ //把这个数组和i的值作为构造函数传入线程类

MyThread myth=new MyThread(a,i);

Systemoutprintln("--------------------------------");

mythstart(); //执行

Systemoutprintln("当前的线程是:"+mythgetName());

}

long endTime=SystemcurrentTimeMillis();

Systemoutprintln("耗时:"+(endTime-startTime)+"毫秒");

}

}

黑色向右箭头 :本地修改过的文件

蓝色向左箭头 :SVN服务器端修改过的文件

黑色向右且带加号的箭头 :本地比服务器端多出的文件

蓝色向左且带加号的箭头 :服务器端比本地多出的文件

黑色向右且带减号的箭头:本地已经删除,而服务器端没有删除的文件

蓝色向左且带减号的箭头:服务器端已经删除,而本地没有删除的文件

红色双向箭头 :本地和服务器端同时修改过的文件

黑色带星号的图标 :本地已经修改过但是没有提交的文件

将你修改的内容同步至svn即可。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » java 如何实现把一个文件同时上传到两个固定地址的服务器上,最好有代码,在这里提前谢谢各位了!

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情