Tag: 文件

如何获取没有Java扩展名的File对象的名称?

我试图获取没有扩展名的File对象的名称,例如当文件名为“vegetation.txt”时获取“植被”。 我试过实现这段代码: openFile = fileChooser.getSelectedFile(); String[] tokens = openFile.getName().split(“.”); String name = tokens[0]; 不幸的是,它返回一个null对象。 我想,在定义String对象时会出现问题,因为getName()方法正常工作; 它给我带有扩展名的文件名。 你有什么主意吗?

从运行Java Jersey Rest API的HTTP服务器传输大文件

我正在使用Java JDK 1.7和Jersey Web服务框架编写Web服务。 我需要提供的一件事是允许经过身份validation的客户端下载某些大型数据文件(1-3 GB)。 理想情况下,我希望这是一个暂停和恢复类型可下载选项。 我尝试了jersey多部分API,并且能够在我的客户端计算机上运行高达400 MB,但除此之外,它遇到了内存不足的问题。 我也担心服务器在遇到同时下载请求时可能会失败。 有关如何做到这一点的任何想法? Netty是一个选择吗? 关于如何将Netty集成到基于Jersey的现有Web服务的任何指针? 是否有其他框架可用于帮助实现此目的? 我必须使用java作为Web服务。 任何指针都会有所帮助。

如何用Java 7中的nio替换File.listFiles(FileFilterfilter)?

我有一些用Java 6编写的文件I / 0遍历代码,试图将它移动到Java 7中的新I / O但我找不到任何替代这种东西。 File[] files = dir.listFiles(AudioFileFilter.getInstance()); 即,没有办法只过滤路径文件,它返回文件列表,所以我必须将每个文件转换为路径(file.toPath),如果我想限制在它调用的方法中使用File,这似乎相当费力。 我确实看过FileVisitor,但这似乎不允许你控制树的遍历方式,所以我认为它不适合我。 那么Java 7中的Path for File有多少替代品呢?

打开文件句柄太多

我正在开发一个庞大的遗留Java应用程序,有很多手写的东西,现在你可以让框架处理。 我现在面临的问题是我们的Solaris服务器上的文件句柄不足。 我想知道跟踪打开文件句柄的最佳方法是什么? 在哪里查看以及什么可能导致打开文件句柄用完? 我无法在Solaris下调试应用程序,只能在我的Windows开发环境中调试。 在Windows下分析打开的文件句柄是否合理?

File.separator与File.pathSeparator

File具有静态字符串分隔符和pathSeparator 。 分隔符是“默认名称分隔符”,pathSeparator是“路径分隔符”。 有什么不同? 是否有一个人比另一个更好?

浏览器下载完成事件

我们一直在寻找答案,但尚未找到解决方案。 我们有一个Web服务器,允许用户下载文件(pdfs),这些文件是从servlet动态生成和提供的。 我们想知道下载何时完成(以及如何成功,是否失败,用户取消了吗?)。 有没有办法在没有用户输入的情况下知道这个? 这些文件相对较小,因此不需要进度条function,但我们需要某种“端钩”,它会在下载完成后报告。 这可能吗? [编辑]浏览器端有什么function可以检测下载结束并通过ajax报告回服务器?

如何在spring4中配置“CommonsMultipartResolver”而不用xml来上传文件

我使用xml配置spring4工作得很好。像这样: <!– –> 当我配置spring4而没有xml.like时: @Configuration @ComponentScan({ “common.user”, “service” }) @EnableWebMvc public class SpringMVCConfig { @Bean public ViewResolver createInternalResourceViewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setViewClass(JstlView.class); viewResolver.setContentType(“text/html”); viewResolver.setPrefix(“/view/”); //viewResolver.setSuffix(“.jsp”); return viewResolver; } @Bean public DefaultServletHttpRequestHandler createDefaultServletHttpRequestHandler() { return new DefaultServletHttpRequestHandler(); } @Bean public CommonsMultipartResolver createMultipartResolver() { CommonsMultipartResolver resolver=new CommonsMultipartResolver(); resolver.setDefaultEncoding(“utf-8”); return resolver; } } 它引发了一个例外: 九月 […]

错误:使用log4j时“setFile(null,false)调用失败”

我在项目的源文件夹中添加了log4j.properties文件,但我仍然收到log4j:错误。 这是我的Log4j.properties文件: .rootCategory=DEBUG, R, O # Stdout log4j.appender.O=org.apache.log4j.ConsoleAppender log4j.appender.O=log44j.log # File log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=log4j.log # Control the maximum log file size log4j.appender.R.MaxFileSize=100KB # Archive log files (one backup file here) log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.O.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x – %C.%M(%F:%L) – %m%n log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x – %C.%M(%F:%L) – %m%n # Define the root logger with appender file logDir = ../logs log4j.rootLogger = […]

以递归方式获取目录及其子目录中的所有文件

我试图获取目录及其子目录中的所有文件的列表。 我目前的递归方法如下: private void printFiles(File dir) { for (File child : dir.listFiles()) { if (child.isDirectory()) { printFiles(child); } else if (child.isFile()) { System.out.println(child.getPath()); } } } printFiles(new File(“somedir/somedir2”)); 但是,我希望有一种非递归方式(可能是现有的API调用)。 如果没有,这是最干净的方式吗?

使用内存中的字节数组创建Java File对象(或等效对象)(无物理文件)

我想在内存中创建一个Java File对象(不创建物理文件),并用字节数组填充其内容。 可以这样做吗? 我们的想法是将它传递给Spring InputStreamSource 。 我正在尝试下面的方法,但它返回说“字节数组不包含文件名。”。 MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message); helper.setFrom(“no-reply@example.com”, “xyz”); helper.setTo(email); helper.setText(body,true); helper.setSubject(subject); helper.addInline(“cImage”, new InputStreamResource(new ByteArrayInputStream(imageByteArr))); mailSender.send(message);