Tag: copy

将ZipEntry复制到新ZipFile的惯用方法是什么?

我正在编写一个工具来在DOCX文件中进行一些小文本替换,这是一种压缩格式。 我的方法是使用ZipOutputStream将ZipEntry内容从原始文件中的条目复制到修改后的文件中。 对于大多数DOCX文件,这种方法很有效,但偶尔我会遇到ZipException有关我写的内容与ZipEntry包含的元信息之间的差异(通常是压缩大小的差异)。 这是我用来复制内容的代码。 为简洁起见,我删除了error handling和文档处理; 到目前为止,我还没有遇到过文档条目的问题。 ZipFile original = new ZipFile(INPUT_FILENAME); ZipOutputStream outputStream = new ZipOutputStream(new FileOutputStream(OUTPUT_FILE)); Enumeration entries = original.entries(); byte[] buffer = new byte[512]; while (entries.hasMoreElements()) { ZipEntry entry = (ZipEntry)entries.nextElement(); if (“word/document.xml”.equalsIgnoreCase(entry.getName())) { //perform special processing } else{ outputStream.putNextEntry(entry); InputStream in = original.getInputStream(entry); while (0 < in.available()){ int read = in.read(buffer); […]

动态制作对象的副本?

我的应用程序将我的Web服务响应存储到WeakHashMap中。 在我的应用程序中,我操纵从UI中的Web服务返回的数据,并且由于对象被引用,它也修改了引用(在我的弱hashmap中)。 有没有办法将对象的副本存储到我的hashmap而不是引用,而不必在我的应用程序中的每个Model对象上实现Clonable?

Java将InputStream的一部分复制到OutputStream

我有一个3236000字节的文件,我想从开始读取2936000并写入OutputStream InputStream is = new FileInputStream(file1); OutputStream os = new FileOutputStream(file2); AFunctionToCopy(is,os,0,2936000); /* a function or sourcecode to write input stream 0to2936000 bytes */ 我可以逐字节地读写,但是从缓冲读取开始慢(我认为)如何复制它?

BeanUtils copyProperties复制Arraylist

我知道BeanUtils可以将单个对象复制到其他对象。 是否可以复制一个arraylist。 例如: FromBean fromBean = new FromBean(“fromBean”, “fromBeanAProp”, “fromBeanBProp”); ToBean toBean = new ToBean(“toBean”, “toBeanBProp”, “toBeanCProp”); BeanUtils.copyProperties(toBean, fromBean); 怎么做到这一点? List fromBeanList = new ArrayList(); List toBeanList = new ArrayList(); BeanUtils.copyProperties(toBeanList , fromBeanList ); 它不适合我。 谁能帮帮我吗。 提前致谢。

将java对象/类从一个类加载器复制到另一个类加载器

您有没有办法将一个类加载的上下文(atrributes等)从一个类加载器(例如’make’class Point)复制到另一个类加载器? 说清楚,示例:我在CL 1上有一个对象Point。现在在另一个CL2上运行,我想在CL 3中创建这个对象。 一些obj: class Point { int x; int y; public Point() {} //getters and setters 风景: … class CL2 { // Running on CL 2 … // Point obj from CL 1 Object point = gotFromCL1(); // Want to create the object on Cl2 Object pointCL2 = point.conversion(); 但我不能使用sun.reflection(不可用),并且序列化不起作用,因为CL2使用CL 1自动“重建”对象。 我考虑的一个解决方案是做一个“100%”javareflectionrconstruct,基本上从CL2获取对象的字段并设置新的obj。 […]

惯用Clojure将资源从运行jar复制到外部

这似乎是一个经典的问题,但我找不到任何关于它的“clojure方式”。 所以,我在资源/(leiningen项目)里面有一个foo /目录。 当jar’d / uberjar’d时,这个foo /目录放在jar的根目录下。 由于jar中的文件在运行时可能不是物理上一致的,因此您无法使用基本复制function以递归方式将目录复制到外部世界。 存在几种Java世界的解决方案( 如何编写可以提取JAR文件并将其数据存储在指定目录(位置)的Java程序?以及如何从jar资源中提取目录(和子目录)? )但是我没有找到任何现有的Clojure解决方案。 作为初学者(包括Clojure和Java),我不确定如何将上述解决方案转换为Clojure。 逐字逐句地从Java翻译成Clojurish Java Interop似乎并不正确。 有没有“官方”,clojure-idiomatic方式来做到这一点? 请注意,我正在使用Raynes的fs实用程序库。 似乎没有直接执行此function的function,但也许我可以使用一些元素来简化流程? (除了明显的基本io糖)

在Java中复制数据的更快方法?

我被赋予了从服务器复制数据的任务。 我正在使用BufferedInputStream和输出流来复制数据,我正在逐字节地进行。 即使它正在运行但复制数据需要花费很长时间,因为其中一些数据是100的MB,所以肯定它不会起作用。 任何人都可以建议我Byte副本的Byte副本,以便我的代码可以复制几百MB的文件。 缓冲区是2048。 这是我的代码的样子: static void copyFiles(SmbFile[] files, String parent) throws IOException { SmbFileInputStream input = null; FileOutputStream output = null; BufferedInputStream buf_input = null; try { for (SmbFile f : files) { System.out.println(“Working on files :” + f.getName()); if (f.isDirectory()) { File folderToBeCreated = new File(parent+f.getName()); if (!folderToBeCreated.exists()) { folderToBeCreated.mkdir(); System.out.println(“Folder name […]

如何在Mac中使用Command-c / Command-v快捷方式复制/粘贴文本?

我有一个Java Swing应用程序,我想在Mac OS X上运行。我想使用普通的Mac复制/粘贴快捷方式将文本复制/粘贴到我的Java应用程序中的文本字段。 Ctrl + c和Ctrl + v可以解决问题,但我想使用Command + c和Command + v代替。 我怎样才能做到这一点?

arraylist的副本不断修改为原始值

我正在研究一个用于保存和调用屏幕状态的系统,这是我第一次搞乱这种东西,所以我不确定最好的方法是什么,但我目前存储所有的“PreviewMonitor”数组列表中的对象(大约40个左右)。 问题在于,当我创建一个名为“allPreviewMonitors”的ArrayList副本时,我最终得到一个ArrayList,其元素随着原始元素的更新而不断变化。 这几乎就像我正在使用原始的ArrayList,事实上,当我创建allPreviewMonitors的副本时,它应该是一个完全不同的ArrayList,其中包含元素的“冻结”版本及其状态。 为什么会发生这种情况? 如果需要我可以显示代码,但我不确定这里是否需要它。

如何在Java中将DOM节点从一个文档复制到另一个文档?

我将节点从一个文档复制到另一个文档时遇到了问题。 我已经使用了Node的adoptNode和importNode方法但它们不起作用。 我也试过appendChild,但是抛出exception。 我正在使用Xerces。 这不是在那里实施的吗? 还有另一种方法吗? List nodesToCopy = …; Document newDoc = …; for(Node n : nodesToCopy) { // this doesn’t work newDoc.adoptChild(n); // neither does this //newDoc.importNode(n, true); }