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();
}

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