java代码实现文件共享 java文件共享项目

写一个多线程的java程序以实现Writer(作者)和Reader(读者)共享文件 。public class Test1 {
public static void main(String args[]) {
【java代码实现文件共享 java文件共享项目】//测试两个线程
WriterThread writerThread=new WriterThread();
writerThread.start();
ReaderThread readerThread=new ReaderThread();
readerThread.start();
}
}
//字节输入的线程
class WriterThread extends Thread{
//加上synchronized实现同步,就能达到线程安全
public synchronized void run(){
File file=new File("c:/file.txt");
try {
FileWriter fileWriter = new FileWriter(file,true);//加上true就会在原有的基础上修改,而不会覆盖原来的
fileWriter.write("迦夜云书");
fileWriter.flush();
fileWriter.close();
} catch (IOException e) {
System.out.println("输入内容失败");
e.printStackTrace();
}
}
}
//字节输出的线程
class ReaderThread extends Thread{
public synchronized void run(){
File file=new File("c:/file.txt");
try {
FileReader fileReader = new FileReader(file);
char content[]=new char[1024];
int len=0;
while((len=fileReader.read(content))!=-1){
System.out.println(new String(content, 0,len));
}
fileReader.close();
} catch (Exception e) {
System.out.println("读取内容失败");
e.printStackTrace();
}
}
}
java如何实现百度网盘的分享逻辑明白网盘存储原理 。并不是给你开辟你的私有盘,所有人的数据都存在一个盘里 。大家都对这个盘可以读写 。为了区分东西都是谁的 。在表结构中有文件(id)和所属人 (共享人)这三个字段 。当我把文件共享给你的时候 。就是把文件(id) 所属人 (共享人,你)这个条数据修改一下 。你可以选择保存到你本地,那就是文件复制,新的文件id 所属人(你) 。
java编程文件传输共享 通信使用socket来传输数据,并且使用UDP来保证传递的速度 。每一个程序既是客户端又是服务器,在指定端口侦听 。可以开两个或者以上的端口,一个端口不断往外发送信息表名自己在线,并且获取其他机器上的传递的信息,将其对应机器设为在线 。
传递文件的时候使用socket的建立的UDP连接 。因为是局域网丢包率基本上可以忽略 。
使用java来做本来就可以跨操作系统 , 不过要注意不同操作系统间文件的差异性 。
大文件的分段传输和断点续传 , 都可以使用随机读写类RandomAccessFile来实现 。
只需数据库限制用户可以让其登录,为其分配用户名 。
总体来说原理比较简单 , 就是比较麻烦,实现起来需要时间比较长,主要是文件传输的时候遇到的情况比较多都要考虑到 。
java如何访问局域网共享文件?java访问共享文件夹,读取局域网中一台机器的共享目录中的文件 , 需要jcifs-1.1.11.jar的支持,使用SMB协议,以下是实现了远程读取文件的功能代码:
package junit;
import jcifs.smb.SmbFile;
/**
* java访问局域网共享目录
*
* @author administrator
* @version 1.0 2015-7-6
*/
public class SmbTest {
public static void main(String[] args) throws Exception {
//smb://xxx:xxx@192.168.2.188/testIndex/
//xxx:xxx是共享机器的用户名密码
String url="smb://192.168.2.188/testIndex/";
SmbFile file = new SmbFile(url);
if(file.exists()){
SmbFile[] files = file.listFiles();
for(SmbFile f : files){
System.out.println(f.getName());
}
}
}
}
基于java的p2p实现文件共享和传输在JAVA中,发送和接收多播信息的方法:
发送多播信息需经历步骤
确定发送的具体信息内容
String msg = "Hello";
选用专门为多播指定的D类IP地址(224.0.0.1到239.255.255.255),创建一个多播组
InetAddress group = InetAddress.getByName("228.5.6.7");
使用指定的端口(一般选1024以上的端口号)建立多播套接字
MulticastSocket s = new MulticastSocket(6789);
加入多播组
s.joinGroup(group);
创建一个数据报封装多播信息
DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(),
group, 6789);
发送
s.send(hi);
接收多播信息的步骤
开辟接收缓冲区
byte[] buf = new byte[1000];
创建接收数据报
DatagramPacket recv = new DatagramPacket(buf, buf.length);
接收
s.receive(recv);
注意:以上发送和接收程序在同一个文件中实现,若在不同文件中实现则应分别定义多播套接字并加入多播组 。
3.与已知IP和端口的端点通信
在互联网上主要采用TCP和UDP来实现两点之间的通信 。采用TCP可可靠传送信息,但花费时间较多;采用UDP可快速传递信息,但不能保证可靠传递 。
JAVA实现TCP通信的方法 :
利用Socket(InetAddress addr, int port)和 Socket(String host, int port),创建客户端套接字,利用ServerSocket(int port)创建服务器端套接字,port端口就是服务器监听连接请求的端口 , 通过调用accept()返回一个最近创建的Socket对象,该Socket对象绑定了客户程序的IP地址或端口号 。通过调用Socket的 getInputStream()方法获得输入流读传送来的信息,也可能通过调用Socket的 getOutputStream()方法获得输出流来发送消息 。
JAVA实现UDP通信的方法 :
使用DatagramPacket(byte [] buffer, int length, InetAddress addr, int port) 确定数据包数组、数组的长度、数据包的地址和端口信息 。使用DatagramSocket()创建客户端套接字,而服务器端则采用DatagramSocket(int port),调用send(DatagramPacket dgp)和 receive(DatagramPacket dgp)来发送和接收数据包 。本文设计的程序采用UDP 。
P2P(Peer-to-Peer 端到端)模型是与C/S(客户/服务器)模型相对应 。基于C/S的用户间通信需要由服务器中转,在C/S中的服务器故障将导致整个网络通信的瘫痪 。。而基于P2P的用户间通信则是直接通信,去掉了服务器这一层,带来的显著优点是通信时没有单一的失败点,一个用户的故障不会影响整个P2P网络 。本文提供了一种用JAVA实现P2P网络通信的方法 。
java代码实现文件共享的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于java文件共享项目、java代码实现文件共享的信息别忘了在本站进行查找喔 。

    推荐阅读