java访问共享目录

新一篇: jsf结合myfaces实现文件上传

由于工作需要读取局域网中一台机器的 共享目录中的文件,需要 jcifs-1.1.11.jar的支持,使用 SMB协议,以下是实现了远程读取并复制到本地,然后删除本地文件的功能:

java访问共享目录 import  java.io.BufferedInputStream;
java访问共享目录
import  java.io.BufferedOutputStream;
java访问共享目录
import  java.io.File;
java访问共享目录
import  java.io.FileOutputStream;
java访问共享目录
import  java.io.IOException;
java访问共享目录
import  java.io.InputStream;
java访问共享目录
import  java.io.OutputStream;
java访问共享目录
import  java.util.Date;
java访问共享目录
java访问共享目录
import  jcifs.smb.SmbFile;
java访问共享目录
import  jcifs.smb.SmbFileInputStream;
java访问共享目录
java访问共享目录
public   class  TestReadSmb  {
java访问共享目录    
public static void main(String[] args) {
java访问共享目录            String smbMachine
="smb://10.108.23.200/temp/说明文件.txt";
java访问共享目录            String localPath
="D:/temp";
java访问共享目录            File file
=readFromSmb(smbMachine,localPath);
java访问共享目录            removeFile(file);
java访问共享目录    }

java访问共享目录
java访问共享目录    
/**
java访问共享目录     * 从smbMachine读取文件并存储到localpath指定的路径
java访问共享目录     * 
java访问共享目录     * 
@param smbMachine
java访问共享目录     *            共享机器的文件,如smb://xxx:[email protected]/myDocument/测试文本.txt,xxx:xxx是共享机器的用户名密码
java访问共享目录     * 
@param localpath
java访问共享目录     *            本地路径
java访问共享目录     * 
@return
java访问共享目录     
*/

java访问共享目录
public static File readFromSmb(String smbMachine,String localpath){
java访问共享目录        File localfile
=null;
java访问共享目录        InputStream bis
=null;
java访问共享目录        OutputStream bos
=null;
java访问共享目录        
try {
java访问共享目录            SmbFile rmifile 
= new SmbFile(smbMachine);
java访问共享目录            String filename
=rmifile.getName();
java访问共享目录            bis
=new BufferedInputStream(new SmbFileInputStream(rmifile));
java访问共享目录            localfile
=new File(localpath+File.separator+filename);
java访问共享目录            bos
=new BufferedOutputStream(new FileOutputStream(localfile));
java访问共享目录            
int length=rmifile.getContentLength();
java访问共享目录            
byte[] buffer=new byte[length];
java访问共享目录            Date date
=new Date();
java访问共享目录            bis.read(buffer);
java访问共享目录            bos.write(buffer);            
java访问共享目录            Date end
=new Date();
java访问共享目录            
int time= (int) ((end.getTime()-date.getTime())/1000);
java访问共享目录            
if(time>0)
java访问共享目录                System.out.println(
"用时:"+time+""+"速度:"+length/time/1024+"kb/秒");            
java访问共享目录        }
 catch (Exception e) {
java访问共享目录            
// TODO Auto-generated catch block
java访问共享目录
            System.out.println(e.getMessage());
java访问共享目录            
java访问共享目录        }
finally{
java访问共享目录            
try {
java访问共享目录                bos.close();
java访问共享目录                bis.close();
java访问共享目录            }
 catch (IOException e) {
java访问共享目录
//                // TODO Auto-generated catch block
java访问共享目录
                e.printStackTrace();
java访问共享目录            }
            
java访问共享目录        }

java访问共享目录        
return localfile;
java访问共享目录    }

java访问共享目录    
public static boolean removeFile(File file) {
java访问共享目录        
return file.delete();
java访问共享目录    }

java访问共享目录}

java访问共享目录

你可能感兴趣的:(java)