public static void main(String[] args) throws IOException {
FileInputStream readFis=new FileInputStream("d:/1.txt")
FileChannel readFc=readFis.getChannel()
ByteBuffer bb=ByteBuffer.allocate(1024)
readFc.read(bb)
FileOutputStream writeFis=new FileOutputStream("d:/2.txt")
FileChannel writeFs=writeFis.getChannel()
writeFs.write((ByteBuffer) bb.flip())
}
}
我就是用sftp传输的,Android下,就是用手机录音,然后把录下来的音频文件保存到服务器里,给你源代码吧,
import java.io.Fileimport java.io.FileInputStream
import java.io.FileOutputStream
import java.util.Date
import java.util.Properties
import java.util.Vector
import android.content.Context
import android.telephony.TelephonyManager
import android.text.format.DateFormat
import android.text.format.Time
import com.jcraft.jsch.Channel
import com.jcraft.jsch.ChannelSftp
import com.jcraft.jsch.JSch
import com.jcraft.jsch.Session
import com.jcraft.jsch.SftpException
public class Sftp_upload {
/**
* 连接sftp服务器
* @param host 主机
* @param port 端口
* @param username 用户名
* @param password 密码
* @return
*/
public ChannelSftp connect(String host, int port, String username,String password) {
ChannelSftp sftp = null
try {
JSch jsch = new JSch()
jsch.getSession(username, host, port)
Session sshSession = jsch.getSession(username, host, port)
System.out.println("Session created.")
sshSession.setPassword(password)
Properties sshConfig = new Properties()
sshConfig.put("StrictHostKeyChecking", "no")
sshSession.setConfig(sshConfig)
sshSession.connect()
System.out.println("Session connected.")
System.out.println("Opening Channel.")
Channel channel = sshSession.openChannel("sftp")
channel.connect()
sftp = (ChannelSftp) channel
System.out.println("Connected to " + host + ".")
//System.out.println("登录成功")
} catch (Exception e) {
}
return sftp
}
/**
* 上传文件
* @param directory 上传的目录
* @param uploadFile 要上传的文件
* @param sftp
*/
public void upload(String directory, String uploadFile, ChannelSftp sftp) {
try {
sftp.cd(directory)
File file=new File(uploadFile)
String currentTime=DateFormat.format("yyyy_MM_dd_hh_mm_ss", new Date()).toString() //获取时间
String filename=currentTime+".wav" //文件名为当前时间来保存
sftp.put(new FileInputStream(file), filename)
System.out.println("上传成功!")
} catch (Exception e) {
e.printStackTrace()
}
}
/**
* 下载文件
* @param directory 下载目录
* @param downloadFile 下载的文件
* @param saveFile 存在本地的路径
* @param sftp
*/
public void download(String directory, String downloadFile,String saveFile, ChannelSftp sftp) {
try {
sftp.cd(directory)
File file=new File(saveFile)
sftp.get(downloadFile, new FileOutputStream(file))
} catch (Exception e) {
e.printStackTrace()
}
}
/**
* 删除文件
* @param directory 要删除文件所在目录
* @param deleteFile 要删除的文件
* @param sftp
*/
public void delete(String directory, String deleteFile, ChannelSftp sftp) {
try {
sftp.cd(directory)
sftp.rm(deleteFile)
} catch (Exception e) {
e.printStackTrace()
}
}
/**
* 列出目录下的文件
* @param directory 要列出的目录
* @param sftp
* @return
* @throws SftpException
*/
public Vector listFiles(String directory, ChannelSftp sftp) throws SftpException{
return sftp.ls(directory)
}
//上传文件
public static void Sftp_server(String file,String imsi) {
String Imsi = imsi
Sftp_upload sf = new Sftp_upload()
String host = "192.168.1.60"
int port = 22
String username = "root"
String password = "123456"
String directory = "/data/test/wav"
//String uploadFile = "c:\\audiocheck\\test.wav"
String uploadFile = file
// String downloadFile = "/data/test/wav/lame.sh"
// String saveFile = "c:\\audiocheck\\content.txt"
// String deleteFile = "c:\\audiocheck\\content.txt"
ChannelSftp sftp=sf.connect(host, port, username, password)
//sf.download(directory, downloadFile, saveFile, sftp)
//sf.delete(directory, deleteFile, sftp)
try{
sftp.cd(directory)
sftp.mkdir(Imsi) //创建目录
System.out.println("finished")
}catch(Exception e){
e.printStackTrace()
}
directory = "/data/test/wav/"+imsi
sf.upload(directory, uploadFile, sftp)//上传文件到服务器
}
}
这个就是源代码,
然后上传的时候用的代码
//imsi也就是 手机的型号来创建文件夹的,这些你都可以修改的。String file = mWorkdir+"/"+"resFile.wav" //要上传的文件
Sftp_upload.Sftp_server(file,imsi) //上传文件
System.out.println("已上传")
可以直接通过流的形式上传或者下载。import java.io.File
import java.io.FileInputStream
import java.io.FileOutputStream
import java.util.Properties
import com.jcraft.jsch.Channel
import com.jcraft.jsch.ChannelSftp
import com.jcraft.jsch.JSch
import com.jcraft.jsch.Session
import com.jcraft.jsch.SftpException
import hkrt.b2b.view.util.Log
import java.util.Vector
import zn.ccfccb.util.CCFCCBUtil
/**
*/
public class CCFCCBSftp {
/**
* 连接sftp服务器
*
* @return
*/
public static ChannelSftp connect() {
ChannelSftp sftp = null
try {
JSch jsch = new JSch()
jsch.getSession(CCFCCBUtil.CCFCCBHOSTNAME, CCFCCBUtil.CCFCCBHOSTNAME, 22)
Session sshSession = jsch.getSession(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBHOSTNAME, 22)
System.out.println("Session created.")
sshSession.setPassword(CCFCCBUtil.CCFCCBLOGINPASSWORD)
Properties sshConfig = new Properties()
sshConfig.put("StrictHostKeyChecking", "no")
sshSession.setConfig(sshConfig)
sshSession.connect()
System.out.println("Session connected.")
System.out.println("Opening Channel.")
Channel channel = sshSession.openChannel("sftp")
channel.connect()
sftp = (ChannelSftp) channel
System.out.println("Connected to " + CCFCCBUtil.CCFCCBHOSTNAME + ".")
} catch (Exception e) {
}
return sftp
}
/**
* 连接sftp服务器
*
* @param host 主机
* @param port 端口
* @param username 用户名
* @param password 密码
* @return
*/
public static ChannelSftp connect(String host, int port, String username,
String password) {
ChannelSftp sftp = null
try {
JSch jsch = new JSch()
jsch.getSession(CCFCCBUtil.CCFCCBHOSTNAME, CCFCCBUtil.CCFCCBHOSTNAME, 22)
Session sshSession = jsch.getSession(CCFCCBUtil.CCFCCBLOGINNAME, host, port)
System.out.println("Session created.")
sshSession.setPassword(CCFCCBUtil.CCFCCBLOGINPASSWORD)
Properties sshConfig = new Properties()
sshConfig.put("StrictHostKeyChecking", "no")
sshSession.setConfig(sshConfig)
sshSession.connect()
System.out.println("Session connected.")
System.out.println("Opening Channel.")
Channel channel = sshSession.openChannel("sftp")
channel.connect()
sftp = (ChannelSftp) channel
System.out.println("Connected to " + host + ".")
} catch (Exception e) {
}
return sftp
}
/**
* 上传文件
*
* @param directory 上传的目录
* @param uploadFile 要上传的文件
* @param sftp
*/
public void upload(String directory, String uploadFile, ChannelSftp sftp) {
try {
sftp.cd(directory)
File file = new File(uploadFile)
sftp.put(new FileInputStream(file), file.getName())
} catch (Exception e) {
e.printStackTrace()
}
}
/**
* 下载文件
*
* @param directory 下载目录
* @param downloadFile 下载的文件
* @param saveFile 存在本地的路径
* @param sftp
* @return
*/
public static String download(String directory, String downloadFile, String saveFile, ChannelSftp sftp) {
try {
sftp.cd(directory)
File file = new File(saveFile)
FileOutputStream fos = new FileOutputStream(file)
sftp.get(downloadFile, fos)
sftp.disconnect()
fos.close()
} catch (Exception e) {
Log.info("下载文件过程出错:" + e.getMessage())
return "false"
}
return "true"
}
/**
* 删除文件
*
* @param directory 要删除文件所在目录
* @param deleteFile 要删除的文件
* @param sftp
*/
public void delete(String directory, String deleteFile, ChannelSftp sftp) {
try {
sftp.cd(directory)
sftp.rm(deleteFile)
} catch (Exception e) {
}
}
/**
* 列出目录下的文件
*
* @param directory 要列出的目录
* @param sftp
* @return
* @throws SftpException
*/
public Vector listFiles(String directory, ChannelSftp sftp) throws SftpException {
return sftp.ls(directory)
}
public static void main(String[] args) {
CCFCCBSftp sf = new CCFCCBSftp()
String host = CCFCCBUtil.CCFCCBHOSTNAME
int port = 22
String username = CCFCCBUtil.CCFCCBLOGINNAME
String password = CCFCCBUtil.CCFCCBLOGINPASSWORD
String directory = "/ccfccb/904999900099/download/"
//String uploadFile = "D:\\tmp\\upload.txt"
String downloadFile = "CCF_904999900099_20150317_0001.zip"
String saveFile = CCFCCBUtil.CCFCCBUploadFilePath + "//" + "CCF_904999900099_20150317_0001.zip"
//String deleteFile = "delete.txt"
ChannelSftp sftp = CCFCCBSftp.connect(host, port, username, password)
//sf.upload(directory, uploadFile, sftp)
CCFCCBSftp.download(directory, downloadFile, saveFile, sftp)
//sf.delete(directory, deleteFile, sftp)
try {
sftp.cd(directory)
//sftp.mkdir("ss")
System.out.println("finished")
} catch (Exception e) {
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)