您的位置:首页 > 编程语言 > Java开发

java打开远程共享文件

2013-08-29 16:52 295 查看
Java代码  

import jcifs.smb.SmbFile;  
import jcifs.smb.SmbFileInputStream;  
  
public class ReadShareFile {  
  
    public static void main(String[] args) {  
  
        try {  
            SmbFile smbFile = new SmbFile(  
                    "smb://test:test@192.168.1.1/out/test.txt");  
            int length = smbFile.getContentLength();// 得到文件的大小  
            byte buffer[] = new byte[length];  
            SmbFileInputStream in = new SmbFileInputStream(smbFile);  
            // 建立smb文件输入流  
            while ((in.read(buffer)) != -1) {  
  
                System.out.write(buffer);  
                System.out.println(buffer.length);  
            }  
            in.close();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}  

例子二

Java代码  

import java.io.BufferedInputStream;  
import java.io.BufferedOutputStream;  
import java.io.File;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.io.OutputStream;  
import java.util.Date;  
  
import jcifs.smb.SmbFile;  
import jcifs.smb.SmbFileInputStream;  
    
public class TestReadSmb {     
    public static void main(String[] args){     
            String smbMachine="smb://test:test@10.108.23.200/temp/test.txt";  
          
            String localPath="D:\\temp";     
            File file=readFromSmb(smbMachine,localPath);     
            removeFile(file);     
    }     
    
    /** ***   
     * 从smbMachine读取文件并存储到localpath指定的路径   
     *    
     * @param smbMachine   
     *            共享机器的文件,如smb://xxx:xxx@10.108.23.112/myDocument/测试文本.txt,xxx:xxx是共享机器的用户名密码   
     * @param localpath   
     *            本地路径   
     * @return   
     */    
    public static File readFromSmb(String smbMachine,String localpath){     
        File localfile=null;     
        InputStream bis=null;     
        OutputStream bos=null;     
        try{     
            SmbFile rmifile = new SmbFile(smbMachine);     
            String filename=rmifile.getName();     
            bis=new BufferedInputStream(new SmbFileInputStream(rmifile));     
            localfile=new File(localpath+File.separator+filename);    
            System.out.println("localfile=="+localfile);  
            bos=new BufferedOutputStream(new FileOutputStream(localfile));     
            int length=rmifile.getContentLength();    
            System.out.println("length=="+length);  
            byte[] buffer=new byte[length];     
            Date date=new Date();     
            bis.read(buffer);    
            bos.write(buffer);   
  
            Date end=new Date();     
            int time= (int) ((end.getTime()-date.getTime())/1000);     
            if(time>0)     
                System.out.println("用时:"+time+"秒 "+"速度:"+length/time/1024+"kb/秒");                 
        } catch (Exception e){      
            System.out.println(e.getMessage());     
                 
        }finally{     
            try {     
                bos.close();     
                bis.close();     
            } catch (IOException e) {     
                e.printStackTrace();     
            }                 
        }     
        return localfile;     
    }     
    public static boolean removeFile(File file) {     
        return file.delete();     
    }     
}   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: