1.汉语转拼音:

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; public class Test { /**
* 将文字转为汉语拼音
* @param chineselanguage 要转成拼音的中文
*/
public static String toHanyuPinyin(String ChineseLanguage){
char[] cl_chars = ChineseLanguage.trim().toCharArray();
String hanyupinyin = "";
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 输出拼音全部小写
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调
defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V) ;
try {
for (int i=0; i<cl_chars.length; i++){
if (String.valueOf(cl_chars[i]).matches("[\u4e00-\u9fa5]+")){// 如果字符是中文,则将中文转为汉语拼音
hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0];
} else {// 如果字符不是中文,则不转换
hanyupinyin += cl_chars[i];
}
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
System.out.println("字符不能转成汉语拼音");
}
return hanyupinyin;
} /**
* 首字母全大写
* @param ChineseLanguage
* @return
*/
public static String getFirstLettersUp(String ChineseLanguage){
return getFirstLetters(ChineseLanguage ,HanyuPinyinCaseType.UPPERCASE);
}
/**
* 首字母全小写
* @param ChineseLanguage
* @return
*/
public static String getFirstLettersLo(String ChineseLanguage){
return getFirstLetters(ChineseLanguage ,HanyuPinyinCaseType.LOWERCASE);
} public static String getFirstLetters(String ChineseLanguage,HanyuPinyinCaseType caseType) {
char[] cl_chars = ChineseLanguage.trim().toCharArray();
String hanyupinyin = "";
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(caseType);// 输出拼音全部大写
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调
try {
for (int i = 0; i < cl_chars.length; i++) {
String str = String.valueOf(cl_chars[i]);
if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母
hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0].substring(0, 1);
} else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字
hanyupinyin += cl_chars[i];
} else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母
hanyupinyin += cl_chars[i];
} else {// 否则不转换
hanyupinyin += cl_chars[i];//如果是标点符号的话,带着
}
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
System.out.println("字符不能转成汉语拼音");
}
return hanyupinyin;
} /**
* 取第一个汉字的第一个字符
* @Title: getFirstLetter
* @Description: TODO
* @return String
* @throws
*/
public static String getFirstLetter(String ChineseLanguage){
char[] cl_chars = ChineseLanguage.trim().toCharArray();
String hanyupinyin = "";
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);// 输出拼音全部大写
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调
try {
String str = String.valueOf(cl_chars[0]);
if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母
hanyupinyin = PinyinHelper.toHanyuPinyinStringArray(
cl_chars[0], defaultFormat)[0].substring(0, 1);;
} else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字
hanyupinyin += cl_chars[0];
} else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母 hanyupinyin += cl_chars[0];
} else {// 否则不转换 }
} catch (BadHanyuPinyinOutputFormatCombination e) {
System.out.println("字符不能转成汉语拼音");
}
return hanyupinyin;
} public static void main(String[] args) { System.out.println(getFirstLettersUp("测试"));
}
}

2.压缩包

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream; public class ZIPUtil { /**s
* 压缩文件
* @param srcFilePath 压缩源路径
* @param destFilePath 压缩目的路径
*/
public static void compress(String srcFilePath, String destFilePath) {
//
File src = new File(srcFilePath); if (!src.exists()) {
throw new RuntimeException(srcFilePath + "不存在");
}
File zipFile = new File(destFilePath); try { FileOutputStream fos = new FileOutputStream(zipFile);
ZipOutputStream zos = new ZipOutputStream(fos);
String baseDir = "";
compressbyType(src, zos, baseDir);
zos.close(); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace(); }
}
/**
* 按照原路径的类型就行压缩。文件路径直接把文件压缩,
* @param src
* @param zos
* @param baseDir
*/
private static void compressbyType(File src, ZipOutputStream zos,String baseDir) { if (!src.exists())
return;
//判断文件是否是文件,如果是文件调用compressFile方法,如果是路径,则调用compressDir方法;
if (src.isFile()) {
//src是文件,调用此方法
compressFile(src, zos, baseDir); } else if (src.isDirectory()) {
//src是文件夹,调用此方法
compressDir(src, zos, baseDir); } } /**
* 压缩文件
*/
private static void compressFile(File file, ZipOutputStream zos,String baseDir) {
if (!file.exists())
return;
try {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
ZipEntry entry = new ZipEntry(baseDir + file.getName());
zos.putNextEntry(entry);
int count;
byte[] buf = new byte[1024];
while ((count = bis.read(buf)) != -1) {
zos.write(buf, 0, count);
}
bis.close(); } catch (Exception e) {
// TODO: handle exception }
} /**
* 压缩文件夹
*/
private static void compressDir(File dir, ZipOutputStream zos,String baseDir) {
if (!dir.exists())
return;
File[] files = dir.listFiles();
if(files.length == 0){
try {
zos.putNextEntry(new ZipEntry(baseDir + dir.getName()+File.separator));
} catch (IOException e) {
e.printStackTrace();
}
}
for (File file : files) {
compressbyType(file, zos, baseDir + dir.getName() + File.separator);
}
} public static void test(){
String path = "C:\\Users\\dell\\Desktop\\统计表\\转换模板_20181031\\模板_20181101\\财务模板_20181202";
File f = new File(path);
File [] file = f.listFiles();
for (int i = 0; i < file.length; i++) {
String sourceFile = path+"/"+file[i].getName();
String targetFile = "";
targetFile = sourceFile+".zip";
compress(sourceFile,targetFile);
}
System.out.println("完成");
}
/**
* @param args 主方法
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//第一个参数是需要压缩的源路径;第二个参数是压缩文件的目的路径,这边需要将压缩的文件名字加上去
// compress("Q:/bbbb/123.txt","Q:/bbbb/ceshi.zip");
test(); }
}

 3.EXCEL

import java.util.ArrayList;
import java.util.List; import org.apache.commons.lang.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile; public class ExcelUtil { private static final Logger LOGGER = LoggerFactory.getLogger(ExcelUtil.class); //判断是否是2003的excel
public static boolean isExcel2003(String filePath) {
return filePath.matches("^.+\\.(?i)(xls)$");
} //判断是否是2007的excel
public static boolean isExcel2007(String filePath) {
return filePath.matches("^.+\\.(?i)(xlsx)$");
} public static List<Object> readExcel(MultipartFile mfile) throws Exception{
List<Object> list = new ArrayList<Object>();
Workbook wb = null;
String fileName = mfile.getOriginalFilename();
boolean isExcel2003 = ExcelUtil.isExcel2003(fileName);
boolean isExcel2007 = ExcelUtil.isExcel2007(fileName);
ArrayList<String> columns = new ArrayList<String>();
ArrayList<String> datas = new ArrayList<String>();
Integer columnsCount = 0;
if (isExcel2003) {
wb = new HSSFWorkbook(mfile.getInputStream());
} else if (isExcel2007) {
wb = new XSSFWorkbook(mfile.getInputStream());
} else {
throw new Exception("该类型文件不是excel");
}
Sheet sheet = null;
// 获取第一个sheet表
sheet = wb.getSheetAt(0);
int rowCount = sheet.getLastRowNum();
int cellCount = sheet.getRow(0).getLastCellNum();
for (int j = 0; j < rowCount + 1; j++) {
Row row = sheet.getRow(j);
if (row != null) {
for (int k = 0; k < cellCount; k++) {
if(row.getCell(k)!=null){
row.getCell(k).setCellType(Cell.CELL_TYPE_STRING);
}
//需要去除空格
String value = (row.getCell(k)+"").trim();
if(!StringUtils.isBlank(value)){
value = value.trim();
}
if (j == 0) {
columns.add("[" + value + "]");
columnsCount++;
} else {
datas.add("'" + value + "'"); }
}
}
}
list.add(datas);
list.add(columns);
list.add(columnsCount);
return list;
}
}

 4.JFrame窗口和文件选择器

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException; import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField; import org.apache.commons.lang.StringUtils; import com.zskj.etl.util.dbmanager.impl.SqlServerDBManager; import pojo.DBServer; @SuppressWarnings("serial")
public class RestoreAccess extends JFrame implements ActionListener {
static JButton open = null;
static JFrame frame = null;
static boolean Flag = false;
static String errorInfo = "";
static DBServer dbServer = new DBServer(); public static void main(String[] args) {
shows();
String s = "";
} public static void shows() {
// 创建文件选择器
RestoreAccess fileChooser = new RestoreAccess();
frame = new JFrame();
frame.setTitle("还原Access文件");
frame.setDefaultCloseOperation(3); // 发起close时默认执行操作(读者可自行百度)
frame.setSize(380, 200);
frame.setLocationRelativeTo(null); // 设置窗体显示在居中位置
frame.setResizable(false);
frame.setLayout(new FlowLayout()); // 创建标签
JLabel L1 = new JLabel("数据库名称 :");
JTextField DBName = new JTextField(20); JLabel L2 = new JLabel(" 数据库 IP :");
JTextField IP = new JTextField(20); JLabel L3 = new JLabel(" 数据库账号 :");
JTextField user = new JTextField(20); JLabel L4 = new JLabel(" 数据库密码 :");
JTextField pwd = new JTextField(20); open = new JButton("选择要还原的Access文件");
fileChooser.add(open);
//button按钮是否单独显示
// fileChooser.setVisible(true);
fileChooser.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
open.addActionListener(fileChooser); // 添加标签 frame.add(L2);
frame.add(IP);
frame.add(L1);
frame.add(DBName);
frame.add(L3);
frame.add(user);
frame.add(L4);
frame.add(pwd);
frame.add(open);
frame.setVisible(true); ButtonListener bl = new ButtonListener(DBName, IP, user, pwd);
open.addActionListener(bl); } @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JFileChooser jfc = new JFileChooser();
jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
jfc.showDialog(new JLabel(), "选择");
File file = jfc.getSelectedFile();
if (file.isDirectory()) {
System.out.println("文件夹:" + file.getAbsolutePath());
} else if (file.isFile()) {
System.out.println("文件:" + file.getAbsolutePath());
System.out.println("name:" + dbServer.getDBName());
System.out.println("IP:" + dbServer.getIP());
System.out.println("pwd:" + dbServer.getPwd());
System.out.println("user:" + dbServer.getUser());
try {
//还原ACCESS功能
SqlServerDBManager sqlServerDBManager = new SqlServerDBManager(dbServer.getIP(), dbServer.getUser(),
dbServer.getPwd(), "1433", dbServer.getDBName());
JackcessUtil.importDataToSqlServer(sqlServerDBManager, file.getAbsolutePath());
Flag = true;
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
errorInfo = e1.getMessage();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
errorInfo = e1.getMessage();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
errorInfo = e1.getMessage();
}finally{
if(Flag == true){
JOptionPane.showMessageDialog(null, "还原成功!");
errorInfo = "";
}else{
if(!StringUtils.isBlank(errorInfo)){
JOptionPane.showMessageDialog(null, errorInfo);
}else{
JOptionPane.showMessageDialog(null, "该文件不是Access文件");
}
errorInfo = ""; } } }
System.out.println(jfc.getSelectedFile().getName()); } // 自己定义一个类来实现接口
public static class ButtonListener implements java.awt.event.ActionListener { // 实现ActionListener
public JTextField DBName = new JTextField(); // 传参
public JTextField IP = new JTextField();
public JTextField user = new JTextField();
public JTextField pwd = new JTextField(); // public Huaban hua=new Huaban(); //一个画板对象
public ButtonListener(JTextField DBName, JTextField IP, JTextField user, JTextField pwd) {// 重载
this.DBName = DBName; // 窗体上的账号框,密码框传到监听上来
this.IP = IP;
this.pwd = pwd;
this.user = user; } public ButtonListener() { } public void actionPerformed(ActionEvent e) { // 捕获点击动作
dbServer.setUser(user.getText());
dbServer.setIP(IP.getText());
dbServer.setPwd(pwd.getText());
dbServer.setDBName(DBName.getText());
} } }

 5.SFTP上传下载

  首先安装Freesshd,配置账号密码和路径

       

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.Vector; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpATTRS;
import com.jcraft.jsch.SftpException; /**
* SFTP帮助类
*
*/
public class SFTPUtil { private static Log log = LogFactory.getLog(SFTPUtil.class); public static void main(String[] args) {
ChannelSftp sftp = null;
Session session = null;
try {
session = SFTPUtil.connect("100.80.10.36", 22, "tt", "123456");
Channel channel = session.openChannel("sftp");
channel.connect();
sftp = (ChannelSftp) channel;
// SFTPUtil.upload("kkkk","D:/otherFiles/1.bat", sftp);
SFTPUtil.download("kkkk","qqq.txt","D:\\otherFiles\\sss\\", sftp);
System.out.println("已完成");
} catch (Exception e) {
e.printStackTrace();
log.debug(e);
}finally{
if(sftp != null)sftp.disconnect();
if(session != null)session.disconnect();
}
} /**
* 连接sftp服务器
* @param host 远程主机ip地址
* @param port sftp连接端口,null 时为默认端口
* @param user 用户名
* @param password 密码
* @return
* @throws JSchException
*/
public static Session connect(String host, Integer port, String user, String password) throws JSchException{
Session session = null;
try {
JSch jsch = new JSch();
if(port != null){
session = jsch.getSession(user, host, port.intValue());
}else{
session = jsch.getSession(user, host);
}
session.setPassword(password);
//设置第一次登陆的时候提示,可选值:(ask | yes | no)
session.setConfig("StrictHostKeyChecking", "no");
//30秒连接超时
session.connect(30000);
} catch (JSchException e) {
e.printStackTrace();
System.out.println("SFTPUitl 获取连接发生错误");
throw e;
}
return session;
} /**
*
* @param directory 相对目标路径 ,只能处理一层
* @param uploadFile 上传文件路径
* @param sftp
* @throws Exception
*/
public static void upload(String directory, String uploadFile, ChannelSftp sftp) throws Exception{
System.out.println("sftp upload file [directory] : "+ directory);
System.out.println("sftp upload file [uploadFile] : "+ uploadFile);
File file = new File(uploadFile);
if(file.exists()){
isExistFolder(directory, sftp);
//必须进入才能创建
sftp.cd(directory);
if(file.isFile()){
InputStream ins = new FileInputStream(file);
//中文名称的
sftp.put(ins, new String(file.getName().getBytes(),"UTF-8"));
} }
} /**
* 判断文件夹是否存在不存在就创建,只处理一层
* @param directory
* @param uploadFile
* @param sftp
*/
public static boolean isExistFolder(String directory,ChannelSftp sftp){
boolean flag = false;
try {
// 判断子目录文件夹是否存在,不存在即创建
SftpATTRS attrs = null;
try {
attrs = sftp.stat(directory);
} catch (Exception e) {
// TODO: handle exception
}
if (attrs == null) {
sftp.mkdir(directory);
log.info("创建子目录:" + directory);
}else{
flag = true;
}
} catch (SftpException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
} /**
*
* @param srcDirectory 源路径,相对路径
* @param srcFileName 源文件名称
* @param savePath 保存路径
* @param sftp
* @throws UnsupportedEncodingException
*/
public static void download(String srcDirectory,String srcFileName, String savePath, ChannelSftp sftp) throws UnsupportedEncodingException {
Vector v = null;
String temp = "";
File sp = new File(savePath);
boolean flag = false;
try {
v = sftp.ls(srcDirectory);
flag = isExistFolder(srcDirectory, sftp);
if(flag == true){
sftp.cd(srcDirectory);
}
if(!sp.exists()){
sp.mkdirs();
}
for (Object object : v) {
temp = object.toString();
temp = temp.substring(temp.lastIndexOf(" ")+1);
if(temp.equals(srcFileName)){
sftp.get(srcFileName,savePath+File.separator+srcFileName);
}
}
} catch (SftpException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

6.FTP工具类

package com.zskj.pd.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.charset.Charset;
import java.text.SimpleDateFormat;
import java.util.Date; import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import com.zskj.pd.pojo.FtpEntity; public class ftpUtil { private final static Logger LOG = LoggerFactory.getLogger(ftpUtil.class); public static void main(String args[]) {
FtpEntity m = new FtpEntity("100.80.10.38", 21, "test", "test");
FTPClient fTPClient = login(m);
uploadFile(fTPClient, "6666666666", "doc", "2.bat", "D:\\otherFiles"); } //验证登录
public static FTPClient login(FtpEntity ftpEntity) {
FTPClient ftp = null;
try {
ftp = new FTPClient();
ftp.connect(ftpEntity.getIp(), ftpEntity.getPort());
ftp.login(ftpEntity.getName(), ftpEntity.getPwd());
ftp.setCharset(Charset.forName("UTF-8"));
ftp.setControlEncoding("UTF-8");
LOG.info(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+" 登录成功");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ftp;
} // 获取ftp某一文件(路径)下的文件名字,用于查看文件列表
public static void getFilesName(FTPClient fTPClient) {
try {
// 获取ftp里面,“Windows”文件夹里面的文件名字,存入数组中
FTPFile[] files = fTPClient.listFiles("/Windows");
// 打印出ftp里面,“Windows”文件夹里面的文件名字
for (int i = 0; i < files.length; i++) {
System.out.println(files[i].getName());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
*
* @param targetFileName
* @param targetPath
* @param sourceFileName
* @param sourcePath
*/
public static void uploadFile(FTPClient fTPClient,String targetFileName,String targetPath,String sourceFileName,String sourcePath) {
try {
File sfp = new File(sourcePath+"\\"+sourceFileName);
fTPClient.storeFile(targetPath+"\\"+targetFileName, new FileInputStream(sfp));
LOG.info(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+" 上传完成");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
*
* @param targetFileName
* @param targetPath
* @param sourceFileName
* @param sourcePath
*/
public static void uploadFile2(FTPClient fTPClient,String targetFileName,String targetPath,String sourceFileName,String sourcePath) {
OutputStream os = null;
FileInputStream fis = null;
try {
os = fTPClient.storeFileStream(targetPath+"\\"+targetFileName);
fis = new FileInputStream(new File(sourcePath+"\\"+sourceFileName));
byte[] b = new byte[1024];
int len = 0;
while ((len = fis.read(b)) != -1) {
os.write(b, 0, len);
}
os.flush();
LOG.info(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+" 上传完成");
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} /**
*
* @param targetFileName
* @param targetPath
* @param sourceFileName
* @param sourcePath
*/
public static void downloadFile(FTPClient fTPClient,String targetFileName,String targetPath,String sourceFileName,String sourcePath) {
try {
// 将ftp根目录下的"jsoup-1.10.2.jar"文件下载到本地目录文件夹下面,并重命名为"1.jar"
fTPClient.retrieveFile(sourcePath+"\\"+sourceFileName, new FileOutputStream(new File(targetPath+"\\"+targetFileName)));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
*
* @param targetFileName
* @param targetPath
* @param sourceFileName
* @param sourcePath
*/
public static void downloadFile2(FTPClient fTPClient,String targetFileName,String targetPath,String sourceFileName,String sourcePath) {
InputStream is = null;
FileOutputStream fos = null;
try {
is = fTPClient.retrieveFileStream(sourcePath+"\\"+sourceFileName);
fos = new FileOutputStream(new File(targetPath+"\\"+targetFileName));
byte[] b = new byte[1024];
int len = 0;
while ((len = is.read(b)) != -1) {
fos.write(b, 0, len);
}
fos.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} }

 

7.SSH

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.concurrent.TimeUnit; import com.jcraft.jsch.Channel;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session; import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.StreamGobbler; public class SSHSUtil { private Channel channel;
private Session session = null;
private int timeout = 60000; /*
* 例如启动tomcat 可以写成绝对路径 /usr/apache-tomcat-7.0.47/bin/startup.sh\n 还可以写成这样 cd
* /usr/apache-tomcat-7.0.47/bin/\n./startup.sh\n 相当于在命令行里先 cd
* /usr/apache-tomcat-7.0.47/bin 回车进入到tomcat的bin目录。
* 然后在通过./startup.sh启动tomcat 这里的\n就相当于回车了。
*/
public static void main(final String[] args) throws Exception { // shutdown.sh
// SSHSUtil sshUtil = new SSHSUtil("100.80.10.38", "tt", "123456");
// String res = sshUtil.runShell("cmd /k start D:\\kkkk\\1.bat",
// "utf-8");
// System.out.println(res);
// sshUtil.close();
test();
// runbat(); } public static void runbat() {
String cmd = "cmd /k start D:\\otherFiles\\1.bat";// pass
try {
Process ps = Runtime.getRuntime().exec(cmd);
InputStream in = ps.getInputStream();
int c;
while ((c = in.read()) != -1) {
System.out.print(c);// 如果你不需要看输出,这行可以注销掉
break;
}
in.close();
ps.destroy();
// ps.waitFor(); } catch (IOException ioe) {
ioe.printStackTrace();
}
// catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
System.out.println("child thread donn");
} public static void test() {
String hostname = "192.168.11.2";
String username = "a";
String password = "123456";
try {
// 建立连接
Connection conn = new Connection(hostname);
// System.out.println("set up connections");
conn.connect();
// 利用用户名和密码进行授权
boolean isAuthenticated = conn.authenticateWithPassword(username, password);
if (isAuthenticated == false) {
// System.out.println("--------");
throw new IOException("Authorication failed");
}
// 打开会话
ch.ethz.ssh2.Session sess = conn.openSession();
System.out.println("cmd----");
// 执行命令
sess.execCommand("start D:\\otherFiles\\1.bat");
System.out.println("The execute command output is:");
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true) {
String line = br.readLine();
if (line == null)
break;
System.out.println(line);
}
// System.out.println("Exit code "+sess.getExitStatus());
sess.close();
conn.close();
// System.out.println("Connection closed"); } catch (IOException e) {
System.out.println("can not access the remote machine");
}
} public SSHSUtil(final String ipAddress, final String username, final String password) throws Exception {
JSch jsch = new JSch();
this.session = jsch.getSession(username, ipAddress, 22);
this.session.setPassword(password);
this.session.setConfig("StrictHostKeyChecking", "no");
this.session.setTimeout(this.timeout);
this.session.connect();
this.channel = this.session.openChannel("shell");
this.channel.connect(1000);
} public String runShell(String cmd, String charset) throws Exception {
String temp = null;
InputStream instream = null;
OutputStream outstream = null;
try {
instream = this.channel.getInputStream();
outstream = this.channel.getOutputStream();
outstream.write(cmd.getBytes());
outstream.flush();
TimeUnit.SECONDS.sleep(2);
if (instream.available() > 0) {
byte[] data = new byte[instream.available()];
int nLen = instream.read(data); if (nLen < 0) {
throw new Exception("network error.");
}
temp = new String(data, 0, nLen, "UTF-8");
}
} finally {
outstream.close();
instream.close();
}
return temp;
} public void close() {
this.channel.disconnect();
this.session.disconnect();
}
}

java:工具(汉语转拼音,压缩包,EXCEL,JFrame窗口和文件选择器,SFTP上传下载,FTP工具类,SSH)的更多相关文章

  1. Java Sftp上传下载文件

    需要使用jar包  jsch-0.1.50.jar sftp上传下载实现类 package com.bstek.transit.sftp; import java.io.File; import ja ...

  2. java 实现Serv-U FTP 和 SFTP 上传 下载

    两种ftp使用java的实现方式 ,代码都已测试 第一种:Serv-U FTP 先决条件: 1.Serv-U FTP服务器搭建成功. 2.jar包需要:版本不限制 <!--ftp上传需要的jar ...

  3. java之SFTP上传下载

    import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.ut ...

  4. java实操之使用jcraft进行sftp上传下载文件

    sftp作为临时的文件存储位置,在某些场合还是有其应景的,比如对账文件存放.需要提供一个上传的工具类.实现方法参考下: pom.xml中引入类库: <dependency> <gro ...

  5. 需求-java web 能够实现整个文件夹的上传下载吗?

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 这次项目的需求: 支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,i ...

  6. java web 能够实现整个文件夹的上传下载吗?

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  7. JAVA Sftp 上传下载

    SftpUtils package xxx;import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import com ...

  8. linux上传下载小工具lrzsz

    工具压缩包链接 密码:zbef 1.将压缩包放到linux的任意目录下,执行:tar zxvf lrzsz-0.12.20.tar.gz 解压压缩包 2.cd lrzsz-0.12.20 3../co ...

  9. Centos上传下载小工具lrzsz

    http://www.centoscn.com/image-text/install/2013/0819/1374.html

随机推荐

  1. SAP选择屏幕下拉框实现

    DATA:vid TYPE vrm_id , "屏幕字段(可以是单个的I/O空间或者是Table Control中的一个单元格) list TYPE vrm_values, value LI ...

  2. Web Api(1)

    由于在学习Web Api没有了解过MVC,觉得有些吃力.很多基础的东西都会一并记录下来. Web API 的意思是使用HTTP协议并通过网络调用的API. API的意思软件外部接口. 在实际的开发中, ...

  3. css3小动画:鼠标hover后text-decoration的动画

    实现效果 具体实现 利用css3 ::after或者::before伪元素实现.html代码 <a class="abstract-title" href="/ar ...

  4. BZOJ 3531: [Sdoi2014]旅行 (树剖+动态开点线段树)

    对于每种信仰维护一棵动态开点线段树就行了- #include <cstdio> #include <cctype> #include <cstring> #incl ...

  5. 改变CTS测试中timeout时间

    关键类: JarHostTest.java——>目录:%SOURCE_ROOT%/cts/tools/tradefed-host/src/com/android/cts/tradefed/tes ...

  6. php写入文件来调试接口数据

    $fp = fopen('write.txt', 'a+b'); //a+读写方式打开,将文件指针指向文件末尾.b为强制使用二进制模式. 如果文件不存在则尝试创建之. fwrite($fp, prin ...

  7. Paint the Digits

    C - Paint the Digits 思路:这道题就只需要利用单调栈,将整个数组扫一遍,求得的最后的栈内元素(要求全部小于非栈内元素)的颜色为1,其余为2 那么怎么实现呢?求最后的栈内元素(要求全 ...

  8. docker Tomcat镜像

    docker中的管理命令 首先需要去下载镜像. [root@CFCA ~]# docker pull tomcat    下载镜像[root@CFCA ~]# docker images       ...

  9. 输出变量的界值(int、float、long.....)

    //整型.浮点型变量表示的关键字,并给出它们各自的界值 #include<iostream> #include<climits> //包含整型数据范围的头文件 #include ...

  10. python2.7与3.4共存【win】

    python3并非完全向后兼容python2 方法一: 电脑里有3.4,再安装个2.7 下载地址:https://www.python.org/downloads/windows/ 解释下安装包: W ...