展开全部

package admit.action;/*用JAVA读取各种计算机文件系统的文件列表 当你安装了jdk,在32313133353236313431303231363533e78988e69d8331333332613732jdk的类库里,有一个标准的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

System.out.println(list1.get(j));

}

}*/ }

package admit.action;

import java.sql.*;

import java.util.ArrayList;

import java.io.*;

import 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

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

}

}

}

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

binaryviewer java_用java实现java的2进制文件字节序转换到C/C++的2进制文件字节序相关推荐

  1. 新手学java_新手如何学习Java

    新手如何学习Java Java作为一门高级编程语言在信息科技时代有着广泛的应用.新手如何学习Java呢?下面小编来给大家介绍Java的学习方法,希望对大家有帮助! 1理解Java思想 Java是一门面 ...

  2. gradle插件 java_简单的Gradle Java插件自定义

    gradle插件 java 正如我在" 用Gradle构建Java的初步了解"一文中所展示的那样,当Gradle使用Java插件并将文件和目录放置在该插件期望的位置时, Gradl ...

  3. kryo java_优化Java序列化– Java,XML,JSON,Kryo,POF

    kryo java 也许我很天真,但是我一直认为Java序列化肯定是将Java对象序列化为二进制形式的最快,最有效的方法. 毕竟Java是第7个主要发行版,所以这不是新技术,而且由于每个JDK似乎都比 ...

  4. perl java_与Perl相比Java性能问题

    我已经编写了一个Perl代码来处理大量CSV文件并获取输出,这需要0.8326秒才能完成. my $opname = $ARGV[0]; my @files = `find . -name " ...

  5. 深入浅出学java_《深入浅出学JAVA开发初级》

    整体说明: Java私塾的这一套视频是完全真实课堂录制,实际上课时间为十一天,主要内容包括: 1:系统完整的学习Java的基础知识 2:深入剖析重点知识点的理论 3:超多的编程题目和程序讲解 4:最后 ...

  6. socket connect java_网络编程 – 为什么Java的socket.connect()消耗100%的cpu资源?

    我创建了一个线程池并为它提供了50个连接到服务器的任务.所以一旦完成连接,发送一些数据,然后断开连接.它的读取超时设置为5秒(当然是5000长).我甚至将线程池设置为最大大小为1.然后在 linux上 ...

  7. 比较abc大小的java_比较abc大小java

    比较abc大小java [2021-02-09 04:04:20]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/(\ ...

  8. editplus 格式java_用Editplus开发Java

    ☆ 准备工作 ①,已安装好jdk,同时配置系统变量(3个,JAVA_HOME,PATH,CLASSPATH) ②,电脑已安装Editplus,并做好设置. ☆ Editplus配置java开发环境 对 ...

  9. flex 发送到java_(转)java与flex通信

    (转)java与flex通信 一.准备: 服务端:JDK1.5 (这个不用介绍了吧?) 服务端IDE:eclipse (它的主页) 客户端:FLEX 3 (Adobe® Flex® 3 是用于构建和维 ...

最新文章

  1. 优化SQL步骤—— explain分析执行计划 (explain 之 id)
  2. An Invitation to 3-D Vision: From Images to Geometric Models 邀请 3d 视觉从图像的几何模型(免费下载)
  3. 十年编程经验输给新晋AI工程师,6个月我们带你绝地反击
  4. Windows Mobile,用C#更改网络连接(SSID、IP Address、Subnet Mask、Gatew... (转)
  5. php mime base64,base64_encode — 使用 MIME base64 对数据进行编码
  6. “error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用”解决方法。
  7. 具体数学第二版第二章习题(2)
  8. 古风素材无水印免费下载
  9. (转)(全程图解)Axure RP8.0安装、破解、汉化教程
  10. (附源码)计算机毕业设计ssm 航空订票系统
  11. 想从事区块链开发? 你应该这么做
  12. 5G China unicom AP:B SMS ASCII 转码要求
  13. 实战|教你爬取全国火锅店数量,并利用地图可视化展示
  14. 达人评测 r33200g和i510400f选哪个好
  15. 企业微信报错,提示无权限访问
  16. 创建两个线程,其中一个输出1-52,另外一个输出A-Z。输出格式要求:12A 34B 56C 78D 依次类推
  17. Linux 使用gcore、gdb、pstack、strace命令查死锁问题
  18. Windows输入法 字母间隙突然变大
  19. 使用脚本巧解office安装源问题(修正版)
  20. js模拟制作超逼真的雪花效果

热门文章

  1. 厉害了!地大这位29岁博导,最大的爱好是研究火……
  2. CGCKD2021大会报告整理(2)--因果推断与因果域适应学习
  3. 转载:tcpdump抓包和Wireshark解包
  4. 【转载保存】Mysql主从同步报错集锦
  5. html之文档的头部和元数据定义(下,未写完)
  6. GDB调试工具使用教程(博客)
  7. 程序媛如何自我突破?
  8. 阿里云助力完美日记半年内系统吞吐量提升50倍
  9. 云原生应用 Kubernetes 监控与弹性实践
  10. 10个你应该了解的Git命令(以及Git省时小窍门)