Tag: 文件

如何读取和写入文件的HashMap?

我有以下HashMap : HashMap fileObj = new HashMap(); ArrayList cols = new ArrayList(); cols.add(“a”); cols.add(“b”); cols.add(“c”); fileObj.put(“mylist”,cols); 我将它写入文件如下: File file = new File(“temp”); FileOutputStream f = new FileOutputStream(file); ObjectOutputStream s = new ObjectOutputStream(f); s.writeObject(fileObj); s.flush(); 现在我想将这个文件读回HashMap,其中Object是一个ArrayList。 如果我只是这样做: File file = new File(“temp”); FileInputStream f = new FileInputStream(file); ObjectInputStream s = new ObjectInputStream(f); fileObj = (HashMap)s.readObject(); s.close(); […]

如何找出renameTo()失败的原因?

我正在使用WinXP。 我用java生成一个文件列表。 该文件最初将创建为abc.txt.temp,在完成生成后,它将重命名为abc.txt。 但是,当我生成文件时,某些文件无法重命名。 它是随机发生的。 无论如何都要找出失败的原因吗? int maxRetries = 60; logger.debug(“retry”); while (maxRetries– > 0) { if (isSuccess = file.renameTo(file2)) { break; } try { logger.debug(“retry ” + maxRetries); Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //file.renameTo(file2); Thread.currentThread().getThreadGroup().getParent().list(); 结果如下: [DEBUG][2009-08-25 08:57:52,386] – retry 1 [DEBUG][2009-08-25 08:57:53,386] – retry […]

包名称与文件夹结构不同,但Java代码仍然编译

我正在使用Notepad ++编写我的Java代码和命令提示符来编译和运行它。 以下是我的示例Java代码, package abraKadabra; public class SuperClass{ protected int anInstance; public static void main(String [] abc){ System.out.println(“Hello”); } } 但是,此文件位于以下文件夹结构中: “usingprotected \ superPkg”(usingProtected是C中层次结构中的某个文件夹:) 所以,我的包名在这里应该像usingProtected.superPkg而不是我编写的abraKadabra。 但是,当我从命令提示符编译这个Java代码时,它编译得很好,没有错误或警告。 为什么会这样? 软件包名称是否应该遵循文件夹结构? 如果它应该,它会如何坚持? 例如,如果我的包名是usingProtected.superPkg,编译器将以相反的顺序检查。 目前的工作目录应该是superPkg,那么父目录应该是使用保护并完成它。 它是如何用包名检查文件夹结构的?

FileChannel ByteBuffer和Hashing Files

我在java中构建了一个文件哈希方法,它接受filepath+filename输入字符串表示,然后计算该文件的哈希值。 散列可以是任何本机支持的java散列算法,例如MD2到SHA-512 。 我试图找出最后一滴性能,因为这个方法是我正在研究的项目的一个组成部分。 我被建议尝试使用FileChannel而不是常规的FileInputStream 。 我原来的方法: /** * Gets Hash of file. * * @param file String path + filename of file to get hash. * @param hashAlgo Hash algorithm to use. * Supported algorithms are: * MD2, MD5 * SHA-1 * SHA-256, SHA-384, SHA-512 * @return String value of hash. (Variable length dependent […]

如何在java中创建exe文件

嗨,我想为我的Java应用程序创建一个exe文件。 我尝试了一些第三方软件JEXECreator,成功创建了exe文件,并在我的系统中正常工作,当我尝试使用另一台机器时,它无法正常工作。 我收到以下错误 * The error occurred while running the application. The exit code is 0x10000223. * Contact the vendor of the application for troubleshooting. java.lang.ClassNotFoundException: com.sample.SampleMain at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at […]

在txt File Java中查找字符串(或行)

假设我有一个包含以下内容的txt文件: john dani zack 用户将输入一个字符串,例如“omar”我希望程序搜索该字符串“omar”的txt文件,如果它不存在,只需显示“不存在”。 我尝试了函数String.endsWith()或String.startsWith(),但当然显示“不存在”3次。 我3周前才开始使用java,所以我是一个新手…请耐心等待我。 谢谢。

同时读取文件(首选java)

我有一个需要几个小时才能处理的大文件。 所以我正在考虑尝试估计块并且并行读取块。 是否可以在单个文件上并发读取? 我已经查看了RandomAccessFile以及nio.FileChannel但基于其他post我不确定这种方法是否有效。

递归流

我想使用Java 8以递归方式列出计算机上的所有文件。 Java 8提供了一个listFiles方法,该方法返回所有文件和目录,但没有递归。 如何使用它来获取完整的递归文件列表(不使用变异集合)? 我已经尝试了下面的代码,但它只有一个深度: static Function<Path, Stream> listFiles = p -> { if (p.toFile().isDirectory()) { try { return Files.list(p); } catch (Exception e) { return Stream.empty(); } } else { return Stream.of(p); } }; public static void main(String[] args) throws IOException { Path root = Paths.get(“C:/temp/”); Files.list(root).flatMap(listFiles).forEach(System.out::println); } 并使用return Files.list(p).flatMap(listFiles); 不编译(不确定原因)…… 注意:我对涉及FileVisitors或外部库的解决方案不感兴趣。

在Java中将byte 写入文件

如何在Java中将字节数组转换为File? byte[] objFileBytes, File objFile

在Java中使用相对目录路径

我试图使用相对路径来定位Java类中的可执行文件,而不是使用硬编码的行,但使用类似于: final static String directory = “../../../ggla/samples/obj/linux_x86” 失败…在Java中使用相对路径的正确方法是什么?