package admit.action;
/*用JAVA讀取各種計算機文件系統的文件列表
當你安裝了jdk,在jdk的類庫里,有一個標準的File類,通過該類,可以很方便的實現瀏覽各種文件系統的功能。
File類:
java.lang.Object
|
+--java.io.File
File類擴展了Object對象,實現了Serializable, Comparable定義的接口,可以通過File的一個實例對jvm上的文件系統進行各種操作,下面我編寫了一個FileViewer類,該類通過Iterator類將一個文件列表實現對列表的迭代操作
FileViewer.java */
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.Vector;
public class ReadPath {
File myDir;
File[] contents;
Vector vectorList;
Iterator currentFileView;
File currentFile;
String path;
public ReadPath() {
path = new String("");
vectorList = new Vector();
}
public ReadPath(String path) {
this.path = path;
vectorList = new Vector();
}
/**
* 設置瀏覽的路徑
*/
public void setPath(String path) {
this.path = path;
}
/***************************************************************************
* 返回當前目錄路徑
*/
public String getDirectory() {
return myDir.getPath();
}
/**
* 刷新列表
*/
public void refreshList() {
if (this.path.equals(""))
path = "c:\\";
myDir = new File(path);
vectorList.clear();
contents = myDir.listFiles();
// 重新裝入路徑下文件
for (int i = 0; i < contents.length; i++) {
vectorList.add(contents[i]);
}
currentFileView = vectorList.iterator();
}
/**
* 移動當前文件集合的指針指到下一個條目
*
* @return 成功返回true,否則false
*/
public boolean nextFile() {
while (currentFileView.hasNext()) {
currentFile = (File) currentFileView.next();
return true;
}
return false;
}
/**
* 返回當前指向的文件對象的文件名稱
*/
public String getFileName() {
return currentFile.getName();
}
/**
* 返回當前指向的文件對象的文件尺寸
*/
public String getFileSize() {
return new Long(currentFile.length()).toString();
}
/**
* 返回當前指向的文件對象的最后修改日期
*/
public String getFileTimeStamp() {
return new Date(currentFile.lastModified()).toString();
}
/**
* 返回當前指向的文件對象是否是一個文件目錄
*/
public boolean getFileType() {
return currentFile.isDirectory();
}
/*
* 通過setPath()方法設定要瀏覽的目錄(注意如果操作系統為微軟操作系統,每個路徑分隔符應寫成兩個斜杠\),nextFile()方法用來移動列表記錄,可以通過getFileName()得到文件或文件夾名稱,通過getFileSize()得到文件尺寸,通過getFileTimeStamp()得到文件的最后修改時間,通過getFileType()判斷是否是一個文件目錄。
* 編寫一個test例子測試這個FileViewer類
*/
public ArrayList okpath(){
ReadPath f = new ReadPath();
f.setPath("c:\\aaa\\");
f.refreshList();
ArrayList list = new ArrayList();
while (f.nextFile()) {
list.add(f.path+f.getFileName());
}
return list;
}
/* public static void main(String[] args) {
ReadPath f = new ReadPath();
ArrayList list1 = f.okpath();
for(int j=0;j<list1.size();j++){
System.out.println(list1.get(j));
}
}*/
}
package admit.action;
import java.sql.*;
import java.util.ArrayList;
import java.io.*;
import oracle');" target="_self">oracle.sql.*;
public class WriteBlob {
public static void main(String[] args) {
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.100:1521:adminsys","admit","wuyue");
conn.setAutoCommit(false);
ReadPath readPath=new ReadPath();
ArrayList list = readPath.okpath();
/* String ff[]=new String[2];
String fileName = "c://tupian.gif"; */
for(int i=0;i<list.size();i++){
System.out.println("路徑名="+list.get(i).toString());
File f = new File(list.get(i).toString());
FileInputStream fin = new FileInputStream(f);
BLOB blob = null;
PreparedStatement pstmt = conn.prepareStatement("insert into javatest(name,context) values(?,empty_blob())");
pstmt.setString(1,""+list.get(i).toString()+"");
pstmt.executeUpdate();
pstmt.close();
pstmt = conn.prepareStatement("select context from javatest where name= ? for update");
pstmt.setString(1,""+list.get(i).toString()+"");
ResultSet rset = pstmt.executeQuery();
if (rset.next()) blob = (BLOB) rset.getBlob(1);
pstmt = conn.prepareStatement("update javatest set context=? where name=?");
OutputStream out = blob.getBinaryOutputStream();
int count = -1, total = 0;
byte[] data = new byte[(int)fin.available()];
fin.read(data);
out.write(data);
/*
byte[] data = new byte[blob.getBufferSize()]; 另一種實現方法,節省內存
while ((count = fin.read(data)) != -1) {
total += count;
out.write(data, 0, count);
}
*/
fin.close();
out.close();
pstmt.setBlob(1,blob);
pstmt.setString(2,""+list.get(i).toString()+"");
pstmt.executeUpdate();
pstmt.close();
System.out.println("插入成功?。?!");
}
conn.commit();
conn.close();
} catch (SQLException e) {
System.err.println(e.getMessage());
e.printStackTrace();
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
}
源文地址:http://blog.csdn.net/hxcfindjob/archive/2006/03/03/614997.aspx