Java文件操作大全(八)

49.文本查找替换
//import java.nio.*;
String s1=%%1;
String s2=%%2;
String s3=%%3;
int pos=%%4;
  /*变量i和j分别表示主串和模式串中当前字符串的位置,k表示匹配次数*/
  int i,j,k=0;
  i = pos;
  j = 0;
  //将s1转化成StringBuffer型进行操作
  repStr = new StringBuffer(s1);
  while(i<repStr.length()&&j<s2.length())
  {
  if(repStr.charAt(i) == s2.charAt(j))
  {
 ++i; ++j;
 if(j==s2.length())
 {
 /*j=s2.length()表示字符串匹配成功,匹配次数加1,此外对主串进行字符串替换*/
 k = k+1;
 repStr.replace(i-j,i,s3);
 //将j进行重新赋值开始新的比较
 j = 0;
 }
  }
  else {i = i-j+1; j = 0;}
  }
  return k;
50.文件关联
//import java.io.*;
try {
Runtime.getRuntime().exec(%%1); //"assoc .txt =mynote" "assoc [.ext[=[filetype]]]" 
} catch (IOException e) {
e.printStackTrace();
}
52.设置JDK环境变量
@echo off 
IF EXIST %1/bin/java.exe ( 
rem 如输入正确的 Java2SDK 安装目录,开始设置环境变量 
@setx JAVA_HOME %1 
@setx path %path%;%JAVA_HOME%/bin 
@setx classpath %classpath%;. 
@setx classpath %classpath%;%JAVA_HOME%/lib/tools.jar 
@setx classpath %classpath%;%JAVA_HOME%/lib/dt.jar 
@setx classpath %classpath%;%JAVA_HOME%/jre/lib/rt.jar 
@echo on 
@echo Java 2 SDK 环境参数设置完毕,正常退出。 
) ELSE ( 
IF "%1"=="" ( 
rem 如没有提供安装目录,提示之后退出
@echo on
@echo 没有提供 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。
) ELSE (
rem 如果提供非空的安装目录但没有bin/java.exe,则指定的目录为错误的目录
@echo on
@echo 非法的 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。
)
)
//http://sourceforge.net/projects/jregistrykey/
//import ca.beq.util.win32.registry.*;
//import java.util.*;
1.打开键
RegistryKey r = new RegistryKey(RootKey.HKEY_LOCAL_MACHINE, 

"SOFTWARE//Microsoft//Windows//CurrentVersion//Explorer//Shell Folders");
2.添加键
RegistryKey r = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Software//BEQ 

Technologies"); 
r.create(); 
9.写入字符串值
RegistryKey r = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Software//BEQ Technologies");
RegistryValue v = new RegistryValue("myVal", ValueType.REG_SZ, "data");
r.setValue(v);
6.获取DWORD值
RegistryKey r = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Software//BEQ Technologies"); 

 
if(r.hasValue("myValue")) { 
 RegistryValue v = r.getValue("myValue"); 
v.setType(ValueType.REG_DWORD);
} // if


53.选择文件夹对话框
/*
import java.io.*;
import javax.swing.*;
*/
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".gif")
|| f.isDirectory();
}
public String getDescription() {
return "GIF Images";
}
});
int r = chooser.showOpenDialog(null);
if (r == JFileChooser.APPROVE_OPTION) {
String name = chooser.getSelectedFile().getPath();
// label.setIcon(new ImageIcon(name));
}

54.删除空文件夹
//import java.io.*;
File f=new File(%%1);
if (isFolerNull(f)) { 
for (File file :f.listFiles()) { 
if (file.list().length == 0) { 
System.out.println(file.getPath()); 
file.delete(); 
}
}
}

55.发送数据到剪贴板
//import java.awt.*;
//import java.awt.datatransfer.*;
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable tText = new StringSelection(%%1);
clipboard.setContents(tText, null);
56.从剪贴板中取数据
//import java.awt.*;
//import java.awt.datatransfer.*;
 // 取得系统剪贴板里可传输的数据构造的Java对象 
 Transferable t = Toolkit.getDefaultToolkit() 
 .getSystemClipboard().getContents(null); 
 try { 
 if (t != null 
 && t.isDataFlavorSupported(DataFlavor.stringFlavor)) { 
 // 因为原系的剪贴板里有多种信息, 如文字, 图片, 文件等 
 // 先判断开始取得的可传输的数据是不是文字, 如果是, 取得这些文字 
 
 String s = (String) t 
 .getTransferData(DataFlavor.stringFlavor); 
 // 同样, 因为Transferable中的DataFlavor是多种类型的, 
 // 所以传入DataFlavor这个参数, 指定要取得哪种类型的Data. 
 System.out.println(s); 
 } 
 } catch (UnsupportedFlavorException ex) { 
 ex.printStackTrace(); 
 } catch (IOException ex) { 
 ex.printStackTrace(); 
 }

57.获取文件路径的父路径
String %%2=%%1.substring(0,%%1.lastIndexOf("//"));

58.创建快捷方式
//import java.io.*; 
try {
PrintWriter pw=new PrintWriter(new FileOutputStream("C:/a.bat")); 
 pw.println(%%1);"C:/a.txt"
 pw.close(); 
 }
catch(IOException e){
e.printStackTrace();
}

59.弹出快捷菜单
//MouseEvent e
JPopupMenu jpm=new JPopupMenu();
show(jpm,x,y);

60.文件夹复制到整合操作
/*
import java.io.*;
import java.util.*;
import javax.swing.*;
*/
JFileChooser Jfc = new JFileChooser("请选择源路径"); // 建立选择档案对话

方块盒 Jfc
if (!Jfc.isFileSelectionEnabled()) {
return;
}
String %%1 = Jfc.getSelectedFile().getParent();
Jfc = new JFileChooser("请选择目标路径"); // 建立选择档案对话方块盒 Jfc
if (!Jfc.isFileSelectionEnabled()) {
return;
}
String %%2 = Jfc.getSelectedFile().getParent();
LinkedList<String> folderList = new LinkedList<String>();
folderList.add(%%1);
LinkedList<String> folderList2 = new LinkedList<String>();
folderList2.add(%%2+ %%1.substring(%%1.lastIndexOf("//")));
while (folderList.size() > 0) {
(new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹
File folders = new File(folderList.peek());
String[] file = folders.list();
File temp = null;
try {
for (int i = 0; i < file.length; i++) {
if (folderList.peek().endsWith(File.separator)) {
temp = new File(folderList.peek() + File.separator
+ file[i]);
} else {
temp = new File(folderList.peek() + File.separator
+ file[i]);
}
if (temp.isFile()) {
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(
folderList2.peek() + File.separator
+ (temp.getName()).toString());
byte[] b = new byte[5120];
int len;
while ((len = input.read(b)) != -1) {
output.write(b, 0, len);
}
output.flush();
output.close();
input.close();
}
if (temp.isDirectory()) {// 如果是子文件夹
for (File f : temp.listFiles()) {
if (f.isDirectory()) {
folderList.add(f.getPath());
folderList2.add(folderList2.peek()
+ File.separator + f.getName());
}
}
}
}
} catch (Exception e) {
//System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();
}
folderList.removeFirst();
folderList2.removeFirst();
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章