以下内容是一些开源软件常用的API使用收集,小知识大力量。
1.关于java I/O方面的一些知识点的记录总结
添加的依赖引用如下:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io-version}</version>
</dependency>
a.copy文件夹中的一切内容到另一个文件夹(文件夹名称不存在,则自动创建)下面。
private String location = "D://Users";
private String targetFolder = "F://aaa";
FileUtils.copyDirectory(new File(location), new File(targetFolder));
b.复制jar中下指定文件夹下的所有内容到目标文件夹中。
private static void copyFolderInJarToFolder(String jar, String sourceFolder, String targetFolder)
throws IOException {
JarFile jf = new JarFile(jar);
Enumeration<JarEntry> e = jf.entries();
// 对于jar内的路径,采用unix的路径分隔符
String normalSrcFolder = FilenameUtils
.separatorsToUnix(FilenameUtils.normalizeNoEndSeparator(sourceFolder) + File.separator);
String normalTargetFolder = FilenameUtils.normalizeNoEndSeparator(targetFolder) + File.separator;
while (e.hasMoreElements()) {
JarEntry je = e.nextElement();
if (je.getName().startsWith(normalSrcFolder)) {
String targetName = je.getName().replaceFirst(normalSrcFolder, "");
String outName = normalTargetFolder + targetName;
File f = new File(outName);
if (je.isDirectory()) {
f.mkdirs();
} else {
if (!f.getParentFile().exists()) {
f.getParentFile().mkdirs();
}
OutputStream outputStream = null;
InputStream inputStream = null;
try {
outputStream = new FileOutputStream(f);
inputStream = jf.getInputStream(je);
byte[] buffer = new byte[1024];
int length = 0;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
} finally {
try {
if (outputStream != null) {
outputStream.flush();
outputStream.close();
}
} finally {
if (inputStream != null) {
inputStream.close();
}
}
}
}
}
}
jf.close();
}
c.IOUtils的使用
流的复制
File f = new File("D://aaa.pdf");
InputStream in = new FileInputStream(f);
OutputStream output = new FileOutputStream(new File("D://GGG.PDF"));
IOUtils.copy(in, output);
in.close();
output.close();
2.关于字符串的一个内容
a.将字符串转化为Unicode字符
private static String toUnicode(String s) {
StringBuilder sb = new StringBuilder();
if(s != null) {
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) < 256)// ASC11表中的字符码值不够4位,补00
{
sb.append("\\u00");
} else {
sb.append("\\u");
}
sb.append(Integer.toHexString(s.charAt(i)));
}
}
return sb.toString();
}