Java Windows 공유 폴더 읽기 및 쓰기 방법 인스턴스
Java는 JCIFS 프레임워크를 사용하여 Windows 공유 폴더를 읽고 쓸 수 있습니다. 이 프레임워크는 로컬 폴더에 접근하여 원격 폴더에 접근하는 것과 같습니다.
JCIFS의 웹 주소:http://jcifs.samba.org/
JCIFS는 순수한 Java를 사용하여 개발한 소스 프레임워크로 smb 프로토콜을 통해 원격 폴더에 접근합니다.이 프레임워크는 Windows 공유 폴더와 Linux 공유 폴더를 동시에 지원하지만, Linux 공유 폴더는 Samba 서비스 소프트웨어를 설치해야 한다(홈페이지:http://www.samba.org/).
SMB(Server Messages Block, 정보 서비스 블록)는 LAN에서 파일과 프린터를 공유하는 통신 프로토콜로 LAN 내의 서로 다른 컴퓨터 간에 파일과 프린터 등 자원을 공유하는 서비스이다.SMB 프로토콜은 클라이언트/서버형 프로토콜로 클라이언트는 이 프로토콜을 통해 서버의 공유 파일 시스템, 프린터 및 기타 자원에 접근할 수 있다."NetBIOS over TCP/IP"설정을 통해 삼바는 국역 네트워크 호스트와 자원을 공유할 수 있을 뿐만 아니라 전 세계 컴퓨터와 자원을 공유할 수 있다.
본고는 주로 Java를 사용하여 Windows 공유 폴더에 액세스하는 방법을 학습합니다.
먼저 Windows 시스템을 찾아 임의의 위치에 폴더:sharedFolder를 만들고 공유로 설정합니다. 공유 사용자 이름:share, 비밀번호:admin을 설정합니다.
(Windows 7에서 공유 폴더 설정 방법: Windows 7에서 공유 폴더 설정 방법:https://www.jb51.net/os/windows/78034.html)
Windows든 Linux든 공유 폴더든 자바 smb를 사용하여 공유 폴더에 접근하는 코드는 똑같지만 Windows와 Linux가 공유 폴더를 설정하는 방식은 다르다.
테스트 코드는 다음과 같습니다.
InputStream in = null;
OutputStream out = null;
try {
//
File localFile = new File("C:/testjpg");
String remotePhotoUrl = "smb://share:admin@11/sharedFolder/"; //
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS_");
SmbFile remoteFile = new SmbFile(remotePhotoUrl + "/" + fmtformat(new Date()) + localFilegetName());
remoteFileconnect(); //
in = new BufferedInputStream(new FileInputStream(localFile));
out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));
byte[] buffer = new byte[4096];
int len = 0; //
while ((len = inread(buffer, 0, bufferlength)) != -1) {
outwrite(buffer, 0, len);
}
outflush(); //
}
catch (Exception e) {
String msg = " :" + egetLocalizedMessage();
Systemoutprintln(msg);
}
finally {
try {
if(out != null) {
outclose();
}
if(in != null) {
inclose();
}
}
catch (Exception e) {}
}
상기 코드에서는 JCIFS 프레임워크에서 제공하는 SmbFile 클래스를 사용했는데 이 클래스는 자바의 File 클래스와 비교적 비슷하다. 이 클래스의 대상을 사용하면 원격 파일의 읽기와 쓰기를 처리할 수 있다.File 객체를 사용하여 로컬 파일을 읽고 SmbFile 객체를 사용하여 원격 파일에 씁니다.SmbFile의connect() 방법은 원격 폴더에 연결을 시도할 수 있습니다. 계정이나 비밀번호가 잘못되면 연결 이상이 발생합니다.원격 파일을 다운로드할 때 SmbFile 객체를 사용하여 원격 파일을 읽으면 됩니다. 코드는 다음과 같습니다.
InputStream in = null ;
ByteArrayOutputStream out = null ;
try {
//
String remotePhotoUrl = "smb://share:admin@11/sharedFolder/testjpg";
SmbFile remoteFile = new SmbFile(remotePhotoUrl);
remoteFileconnect(); //
//
in = new BufferedInputStream(new SmbFileInputStream(remoteFile));
out = new ByteArrayOutputStream((int)remoteFilelength());
//
byte[] buffer = new byte[4096];
int len = 0; //
while ((len = inread(buffer, 0, bufferlength)) != - 1) {
outwrite(buffer, 0, len);
}
outflush(); //
return outtoByteArray();
}
catch (Exception e) {
String msg = " :" + egetLocalizedMessage();
Systemoutprintln(msg);
}
finally {
try {
if(out != null) {
outclose();
}
if(in != null) {
inclose();
}
}
catch (Exception e) {}
}
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.