JCIFSを使ってみる(ファイルの読み込み)
JCIFS なる Java の SMB クライアントの実装があるということを知ったので、ちょっと使ってみました。
今回は読み込みのサンプルを。
■ JCIFSTest.java
package com.example.jcifs; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.net.MalformedURLException; import java.net.UnknownHostException; import jcifs.smb.SmbException; import jcifs.smb.SmbFile; import jcifs.smb.SmbFileInputStream; public class JCIFSTest { public static void main(String[] args) { String url = "smb://<username>:<password>@<'PC name' or 'IP address'>/<sharename>/test.txt"; String content = JCIFSTest.getFileContent(url); System.out.println(content); } private static String getFileContent(String url) { SmbFileInputStream in = null; ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { SmbFile sf = new SmbFile(url); in = new SmbFileInputStream(sf); byte[] buf = new byte[1024]; int n; while((n = in.read(buf)) > 0) { baos.write(buf, 0, n); } } catch (MalformedURLException | UnknownHostException | SmbException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if(in != null) in.close(); } catch (IOException e) { } } return baos.toString(); } }
※ 事前に適用なフォルダを作って、そのフォルダに共有の設定をしておいてください。手順的にはフォルダの右クリックから [共有]タブ - [詳細な共有] - [このフォルダーを共有する]にチェック、[アクセス許可] からユーザを追加。
※ username、password は上記で追加したユーザとパスワード。
※ sharename は「詳細な共有」ダイアログの [共有名] に指定したもの。
無事アクセスできて実行されれば、コンソールに text.txt の内容が表示されるはずです。
簡単ですが、以上になります。
* JCIFS のサンプル
Index of /src/examples
* APIドキュメント
JCIFS API
[環境情報]
Windows 10
Java SE 8 Update 92
JCIFS 1.3.18