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

展开全部

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

}

}

}

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZDNS宣布完成B轮融资,根服务器之外,顶级域名系统迎重要机遇

从互联网诞生&#xff0c;由于IPv4技术中UDP报文数据容量限制&#xff0c;到2021的今天&#xff0c;全球也仅有13个根服务器&#xff08;俗称“主根”&#xff09;&#xff0c;其中10个主根由美国持有&#xff0c;英国、瑞典、日本各持有1个。而中国只运营根镜像服务器。虽然目…

应用容灾中,MySQL数据表是否需要跨云同步?

简介&#xff1a; 容灾系统的重要目标在于保证系统数据和服务的“连续性”。当系统发生故障时&#xff0c;容灾系统能够快速恢复服务和保证数据的有效性。为了防止天灾人祸、不可抗力&#xff0c;在同城或异地建立对应的IT系统&#xff0c;其中最核心的工作是数据同步。本文选取…

java浮点数数转二进制的数吗_深入理解计算机系统(2.7)-二进制小数和IEEE浮点标准 - Java 技术驿站-Java 技术驿站...

整数的表示和运算我们已经讲完了&#xff0c;在实际应用中&#xff0c;整数能够解决我们大部分问题。但是某些需要精确表示的数&#xff0c;比如某件商品的价格&#xff0c;某两地之间的距离等等&#xff0c;我们如果用整数表示将会有很大的出入&#xff0c;这时候浮点数就产生…

Docker 终失 C 位,开源少年缘何黑化

作者 | 马超出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;开源真是火了&#xff0c;近些年成功的IT项目像TensorFlow、RocketMQ、TDEngine都是开源项目&#xff0c;而且这种火爆还出了圈&#xff0c;连带着RISC-V这种准开源的芯片也成为了各方争抢的香饽饽。但是…

中油即时通信电脑版_市场营销之即时通讯营销

✎IM营销又叫即时通讯营销(instantmessaging)&#xff0c;是企业通过即时工具im推广产品和品牌,以实现目标客户挖掘和转化的网络营销方式。封面设计丨Sweety 责编丨花花第60篇丨每日一篇好文&#xff1a;2645字丨5分钟阅读即时通讯营销常用的主要有以下两种情况&#xff1a;第一…

java组合框的事件有哪些_博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理...

博为峰小博老师&#xff1a;在JList类中有addListSelectionListener()方法&#xff0c;可以检测用户是否对JList的选取有任何的改变。在ListSelectionListener接口中只定义一个方法&#xff0c;那就是valueChanged(ListSelectionEvente)&#xff0c;所以必须实现这个方法&#…

使用 Arthas 排查 SpringBoot 诡异耗时的 Bug

简介&#xff1a; 公司有个渠道系统&#xff0c;专门对接三方渠道使用&#xff0c;没有什么业务逻辑&#xff0c;主要是转换报文和参数校验之类的工作&#xff0c;起着一个承上启下的作用。最近&#xff0c;在优化接口的响应时间&#xff0c;优化了代码之后&#xff0c;但是时间…

关于数据库,你可能最想知道的几件事

【CSDN 编者按】随着技术不断更新&#xff0c;数据库的发展可谓全面开花&#xff0c;也吸引了越来越多人的关注&#xff0c;但大家真的都足够了解数据库吗&#xff1f;作者 | 易璜珵 责编 | 侯淼淼出品 | 《新程序员》互联网飞速发展的时代里&#xff0c;数据库、中间件和…

java反编译工具_JDA Java反编译工具的下载和使用手册

JDA(javadecompile analysis)是一款以dex为核心的java反编译工具&#xff0c;同时支持apk、dex、jar文件的反编译&#xff0c;支持动态重命名。该软件主要是用来反编译分析代码而不是反编译出来完全正确的java代码&#xff0c;运行需安装jdk1.8及以上版本版本(jdk1.7应该也行)。…

OpenKruise v0.8.0 核心能力解读:管理 Sidecar 容器的利器

简介&#xff1a; OpenKruise 是阿里云开源的云原生应用自动化管理套件&#xff0c;也是当前托管在 Cloud Native Computing Foundation (CNCF) 下的 Sandbox 项目。它来自阿里巴巴多年来容器化、云原生的技术沉淀&#xff0c;是阿里内部生产环境大规模应用的基于 Kubernetes 之…

请把ios文件解压出来是什么意思_【张小亮】最新版本行会3。中文版本。解压即玩。...

电脑游戏目录【回复&#xff1a;电脑游戏】手机游戏目录【回复&#xff1a;手机游戏】【张小亮】最新版本行会3。中文版本。解压即玩。【名称】行会3【大小】4.12 GB【版本】v0.9.9【系统】电脑游戏【下载】本文中【往下滑】【安装】1。请下载【好压】这款解压软件进行解压。2。…

数据结构是如何装入 CPU 寄存器的?

作者|码农的荒岛求生来源|码农的荒岛求生有同学问了这样一个问题&#xff1a;既然CPU内部的寄存器数量有限&#xff0c;容量有限&#xff0c;那么我们使用的庞大的数据结构是怎样装入寄存器供CPU计算的呢&#xff1f;这篇文章就为你讲解一下这个问题。内存与数据真正有用的程序…

基于WASM的无侵入式全链路A/B Test实践

简介&#xff1a; 我们都知道&#xff0c;服务网格(ServiceMesh)可以为运行其上的微服务提供无侵入式的流量治理能力。通过配置VirtualService和DestinationRule&#xff0c;即可实现流量管理、超时重试、流量复制、限流、熔断等功能&#xff0c;而无需修改微服务代码。 本文所…

网易游戏基于 Flink 的流式 ETL 建设

简介&#xff1a; 网易游戏流式 ETL 建设实践及调优经验分享&#xff5e; 网易游戏资深开发工程师林小铂为大家带来网易游戏基于 Flink 的流式 ETL 建设的介绍。内容包括&#xff1a; 专用 ETLEntryX 通用 ETL调优实践未来规划 一. 业务背景 网易游戏 ETL 服务概况 网易游戏的…

potplayer 多个进程_创建守护进程的步骤

什么是守护进程&#xff1f;答&#xff1a;守护进程是后台运行的、系统启动是就存在的、不予任何终端关联的&#xff0c;用于处理一些系统级别任务的特殊进程。实现思路&#xff1a;实现一个守护进程&#xff0c;其实就是将普通进程按照上述特性改造为守护进程的过程。需要注意…

mysql 走索引 很慢_MySQL优化:为什么SQL走索引还那么慢?

背景2019-01-11 9:00-10:00 一个 MySQL 数据库把 CPU 打满了。硬件配置&#xff1a;256G 内存&#xff0c;48 core分析过程接手这个问题时现场已经不在了&#xff0c;信息有限&#xff0c;所以我们先从监控系统中查看一下当时的状态。从 PMM 监控来看&#xff0c;这个 MySQL 实…

华为徐直军:以持续创新加快数字化发展

【中国 深圳】2021年9月23日&#xff0c;华为全联接大会以线上形式举行&#xff0c;今年的全联接大会以“深耕数字化”为主题&#xff0c;汇聚了业界思想领袖&#xff0c;商业精英&#xff0c;技术大咖&#xff0c;生态伙伴等&#xff0c;探讨如何深入业务场景&#xff0c;把数…

大型 Web 应用插件化架构探索

简介&#xff1a; 随着 Web 技术的逐渐成熟&#xff0c;越来越多的应用架构趋向于复杂&#xff0c;例如阿里云等巨型控制台项目&#xff0c;每个产品下都有各自的团队来负责维护和迭代。不论是维护还是发布以及管控成本都随着业务体量的增长而逐渐不可控。在这个背景下微前端应…

高精地图技术专栏 | 基于空间连续性的异常3D点云修复技术

简介&#xff1a; 我们需要通过激光的内部机制和数据处理算法&#xff0c;将这些噪声恢复到它本来的位置。本文会从MTA问题产生的原理、激光应对MTA的内部机制、数据处理算法三方面来介绍高精资料处理是如何解决这个问题的。 1.背景 1.1 高精资料采集 高精采集车是集成了测绘…

pytorch 图像分割的交并比_「通知」《深度学习之图像识别》再版工作启动,欢迎指导和提建议...

不知不觉有三第一本书也上市超过1年半了&#xff0c;第一次写作略显稚嫩&#xff0c;许多细节处理不当&#xff0c;比如没有在印刷前核对公式&#xff0c;被删掉了参考文献影响读者阅读体验等。现在本书正式启动再版工作&#xff0c;注意不是重印&#xff0c;是再版。重印只是修…