使用smb(Server Message Block)协议读取或者写入局域网共享文件
下载并引用jcifs包http://jcifs.samba.org/
public void readfile()
{
StringBuffer sb = new StringBuffer("");
try {
SmbFile f = new SmbFile("smb://Guest:456852@127.0.0.1/test/test.txt");
if (f.exists() && f.isFile())
{
int length = f.getContentLength();// 得到文件的大小
byte buffer[] = new byte[length];
SmbFileInputStream in = new SmbFileInputStream(f);
while ((in.read(buffer)) != -1)
{
sb.append(new String(buffer));
}
in.close();
}
}
catch (Exception e)
{
e.printStackTrace();
}
return sb.toString();
}
public void writefile
{
String content="test content";
SmbFile dirfile= new SmbFile(("smb://Guest:456852@127.0.0.1/test/test.txt");
SmbFileOutputStream os=new SmbFileOutputStream(dirfile);
if(!dirfile.exists())
{
dirfile.createNewFile();
os.write(content.getBytes());
}
else
{
os.write(content.getBytes());
}
os.close();
}
报错:jcifs.smb.SmbException: Failed to negotiate
jcifs.smb.SmbException: Timeout trying to open socket
java.net.ConnectException: Connection refused: connect
研究了好久,未能解决,最后把jcifs包版本从jcifs-1.1.11.jar换成jcifs-1.3.25.jar,结果问题解决,估计是版本问题,但具体还是未知,如有高手看见,望能帮忙解答。