프로젝트는 종종 사진, 파일 등을 저장하는 공유 폴더와 같은 공유 폴더에 액세스해야합니다. 따라서 Java를 사용하여 Windows 공유 폴더를 읽고 쓰는 방법은 무엇입니까?
Java는 JCIFS 프레임 워크를 사용하여 Windows 공유 폴더를 읽고 쓸 수 있습니다. 이 프레임 워크를 사용하면 로컬 폴더에 액세스하는 것과 같은 원격 폴더에 액세스 할 수 있습니다.
JCIFS의 URL : http://jcifs.samba.org/
JCIFS는 순수한 Java를 사용하여 개발 한 오픈 소스 프레임 워크로 SMB 프로토콜을 통해 원격 폴더에 액세스합니다. 이 프레임 워크는 Windows 공유 폴더와 Linux 공유 폴더를 모두 지원합니다. 그러나 Linux 공유 폴더에는 Samba 서비스 소프트웨어 설치가 필요합니다 (공식 웹 사이트 : http://www.samba.org/).
SMB (Server Messages Block)는 로컬 영역 네트워크에서 파일 및 프린터를 공유하기위한 통신 프로토콜입니다. 지역 네트워크의 다른 컴퓨터간에 파일, 프린터 및 기타 리소스에 대한 공유 서비스를 제공합니다. SMB 프로토콜은 클라이언트가 서버의 공유 파일 시스템, 프린터 및 기타 리소스에 액세스 할 수있는 클라이언트/서버 프로토콜입니다. Samba는 "TCP/IP를 통해 NetBios"를 설정함으로써 로컬 네트워크 호스트뿐만 아니라 전 세계의 컴퓨터와 자료를 공유 할 수 있습니다.
이 기사는 주로 Java를 사용하여 Windows의 공유 폴더에 액세스하는 방법을 배웁니다.
먼저 Windows 시스템을 찾아서 폴더를 만들고 모든 위치에 SharedFolder를 공유하도록 설정하고 공유 사용자 이름 : Share, Password : Admin을 설정하십시오.
(Windows 7에서 공유 폴더를 설정하는 방법 : Windows 7 : //www.vevb.com/os/windows/78034.html에서 공유 폴더를 설정하는 방법)
Windows 또는 Linux의 공유 폴더이든 관계없이 Java SMB를 사용하여 공유 폴더에 액세스하는 코드는 동일하지만 Windows 및 Linux가 공유 폴더를 구성하는 방식은 다릅니다.
테스트 코드는 다음과 같습니다.
inputStream in = null; outputStream out = null; 시도 {// 이미지 파일을 가져옵니다. localfile = new 파일 ( "c :/testjpg"); 문자열 remotephotourl = "smb : // share : admin@11/sharedfolder/"; // 사진 저장을위한 공유 디렉토리 simpledateformat fmt = new SimpledateFormat ( "yyyymmddhhmmsssss_"); smbfile implicfile = 새로운 smbfile (remotephotourl + "/" + fmtformat (new date ()) + localfilegetname ()); impleatfileconnect (); // in = new bufferedInputStream (new FileInputStream (localFile))을 연결하려고합니다. out = new bufferedOutputStream (new SMBFileOutputStream (remoteFile)); 바이트 [] 버퍼 = 새로운 바이트 [4096]; int len = 0; // 길이를 읽습니다. } Outflush (); // 버퍼링 된 출력 스트림} catch (예외 e) {String msg = "오류가 발생했습니다." + egetLocalizedMessage (); SystemOutPrintln (MSG); } 마침내 {try {if (out! = null) {outClose (); } if (in! = null) {inclose (); }} catch (예외 e) {}}위의 코드에서는 JCIFS 프레임 워크가 제공하는 SMBFile 클래스가 사용됩니다. 이 클래스는 Java 파일 클래스와 유사합니다. 이 클래스의 객체를 사용하면 원격 파일의 읽기 및 쓰기를 처리 할 수 있습니다. 파일 객체를 사용하여 로컬 파일을 읽은 다음 SMBFile 객체를 사용하여 원격 파일에 씁니다. smbfile의 connect () 메소드는 원격 폴더에 연결하려고 시도 할 수 있습니다. 계정이나 비밀번호가 잘못되면 연결 예외가 발생합니다.
원격 파일을 다운로드 할 때 SMBFile 객체를 사용하여 원격 파일을 읽으십시오. 코드는 다음과 같습니다.
inputStream in = null; bytearrayoutputStream out = null; {// 원격 파일 생성 객체 문자열 remotephotourl = "smb : // share : admin@11/sharedfolder/testjpg"; smbfile implicfile = 새로운 smbfile (remotephotourl); impleatfileconnect (); // 연결을 시도하십시오. // 파일 스트림을 만들어 in = new bufferedInputStream (new SMBFileInputStream (remoteFile)); out = new BytearRayoutputStream ((int) remoteFilElength ()); // 파일 내용 읽기 BYTE [] buffer = new Byte [4096]; int len = 0; // 길이를 읽습니다. } Outflush (); // 버퍼링 된 출력 스트림을 플러시합니다. 리턴 voltobytearRay (); } catch (예외 e) {string msg = "오류 다운로드 원격 파일 :" + egetLocalizedMessage (); SystemOutPrintln (MSG); } 마침내 {try {if (out! = null) {outClose (); } if (in! = null) {inclose (); }} catch (예외 e) {}}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.