`

Java读取大文件的处理

 
阅读更多

publicclass ProgressMonitorTest {

publicstaticvoid main(String[] args) {

// 创建一个包含“Click me”的窗口

final JFrame f =new JFrame("ProgressMonitor Sample");

f.getContentPane().setLayout(new FlowLayout());

JButton b = new JButton("Click me");

f.getContentPane().add(b);

f.pack();

 

// 设置按钮的动作事件

b.addActionListener(new ActionListener() {

publicvoid actionPerformed(ActionEvent e) {

// 这儿使用了新的线程处理按钮的动作事件,因为我们需要

// 主窗口的线程响应用户。这样你可以多次点击该按钮,

// 会启动多个读取文件的线程。主窗口也保持响应。

new Thread() {

publicvoid run() {

try {

// 打开文件输出流,把InputStream包装在ProgressMonitorInputStream中。

// 在当前目录中需要放置一个大文件,建议超过50M

String fileName = "D:\\qincidong\\资料\\ext\\深入浅出Ext.JS.徐会生等.pdf";
InputStream in = new FileInputStream(fileName);
ProgressMonitorInputStream pm = new ProgressMonitorInputStream(f, "Reading a big file", in);
ProgressMonitor pmr = pm.getProgressMonitor();
// 读取文件,如果总耗时超过2秒,将会自动弹出一个进度监视窗口。
// 显示已读取的百分比。
int c;
File file = new File(fileName);
long total = file.length();
long curr = 0;
byte[] data = new byte[1024];

while ((c = pm.read(data)) != -1) {
curr += c;
// 处理代码
pmr.setNote("已完成" + (curr*100 / total) + "%");
// 感觉不够明显,这里每执行一次循环,暂停一下
Thread.sleep(1);
}
System.out.println("执行完毕。total:" + total + ",curr:" + curr);
pm.close();

} catch (Exception ex) {

ex.printStackTrace();

}

}

}.start();

}

});

 

// 设置缺省的窗口关闭行为,并显示窗口。

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

}

}

分享到:
评论

相关推荐

    java按行读取大文件并解析入库

    在Java编程中,处理大容量文本文件是一项挑战,因为传统的逐行读取方式可能会消耗大量内存,导致程序崩溃。为了高效地处理这类问题,我们可以利用Java的`java.nio`包中的BufferedReader和FileChannel等类,实现按行...

    java读取文件方法大全

    ### Java读取文件方法大全:读取File流等技术 在Java中,读取文件是一项基本且重要的操作,它可以通过多种方式实现,如字节流、字符流和基于行的读取。下面将详细介绍这些方法: #### 字节级读取:`...

    java 读取文件 文件读取操作

    在Java编程语言中,文件读取是常见的任务,可以用于处理各种类型的数据,如文本、图像、音频等。本文将详细介绍Java中四种不同的文件读取方法:按字节读取、按字符读取、按行读取以及随机读取。 1. **按字节读取...

    java读写csv文件,中文乱码问题

    2. **Java读取CSV文件**: - 使用`BufferedReader`和`InputStreamReader`组合,可以指定字符编码读取文件。例如: ```java FileInputStream fis = new FileInputStream("path_to_file.csv"); InputStreamReader ...

    java读取局域网共享机器文件

    要实现Java读取局域网共享文件,主要涉及以下步骤和知识点: 1. **网络路径表示**:Java中,网络路径通常以UNC(Universal Naming Convention)格式表示,形如`\\hostname\shared_directory\file.txt`。这里`...

    Java读取TIFF文件

    在IT行业中,图像处理是不可或缺的一部分,特别是在...总的来说,Java通过第三方库如Apache Commons Imaging,提供了读取和处理TIFF文件的能力,这使得开发者能够在Java应用程序中灵活地处理这种专业级别的图像格式。

    java读取TXT文件入库

    以上就是使用Java读取TXT文件并将其内容存入数据库的基本步骤。根据实际需求,可能还需要处理异常、优化性能(如批处理SQL)、验证数据格式等细节问题。在处理大规模数据时,考虑使用多线程或者流式处理来提高效率。

    java读取mpp文件

    总之,`mpxj`是Java开发者处理MPP文件的强大工具,它简化了与Microsoft Project文件的交互,让你能够在Java应用中轻松读取、修改和创建项目计划。在实际开发中,可以根据具体需求灵活运用这个库的功能,实现复杂的...

    java nio 包读取超大数据文件

    相较于传统的Java IO,NIO具有更高的性能和更丰富的功能,尤其适合处理大文件或高并发场景。 #### 二、Java NIO关键组件 Java NIO的核心组件包括: - **Channels**:用于表示IO源或目标的一个连接点。 - **Buffers*...

    JAVA实现远程文件读取

    JAVA实现远程文件读取 JAVA是一种广泛应用于软件开发的编程语言,随着网络技术的发展,JAVA也提供了许多支持...JAVA实现远程文件读取技术可以广泛应用于各种文件共享和文件传输场景,提高了文件处理的效率和灵活性。

    java读取excel之xlsl超大文件

    标题"java读取excel之xlsl超大文件"所涉及的核心知识点是优化大量数据的读取策略。在Java中,可以使用Apache POI的SXSSF API(Streaming Usermodel API)来实现这种优化。与常规的XSSF API不同,SXSSF允许我们以流的...

    java如何读取文件

    Java读取文件的过程虽然看似简单,但涉及多个细节和潜在的错误处理。通过使用`BufferedReader`和适当的异常管理,可以高效且安全地读取文本文件。此外,还可以考虑使用Java 7引入的`try-with-resources`语句来自动...

    java读取大文件大全

    ### Java读取大文件技术详解 #### 一、引言 在Java开发中,处理大文件是一项常见的任务,尤其在数据分析、日志处理等领域尤为重要。本文将深入探讨如何使用Java来高效地读取大文件,并提供一个具体的示例代码进行...

    java读取shp文件代码

    ### Java读取SHP文件及DBF属性的关键技术解析 #### 概述 在地理信息系统(GIS)领域,Shapefile是一种常见的矢量数据格式,用于存储地理位置信息及相关属性数据。一个完整的Shapefile由多个文件组成,包括.shp、....

    JAVA对音频文件处理程序

    本项目“JAVA对音频文件处理程序”聚焦于读取音频文件,执行降分贝操作,然后将处理后的音频保存为新的文件。这里我们将深入探讨相关的关键知识点。 首先,Java提供了一个强大的包`javax.sound.sampled`来处理音频...

    java读取配置文件

    Java NIO(New IO)提供了非阻塞的I/O操作,可以更高效地处理文件读取: ```java Path path = Paths.get("config.properties"); Properties props = new Properties(); try (InputStream in = Files....

    java读取xps文件

    Java 读取 XPS 文件是将 XML Paper Specification (XPS) 文件内容提取并处理到 Java 应用程序中的过程。XPS 是一种基于 XML 的文件格式,主要用于创建、查看和打印文档,它与 PDF 类似,但主要在微软环境中使用。在 ...

    java 按顺序读取文件

    `Scanner`提供了更丰富的输入功能,但它不是为了处理大量数据而设计的,所以在处理大文件时,`BufferedReader`通常更高效。 在实际开发中,我们需要注意异常处理,例如在上述示例中使用了try-catch块来捕获可能抛出...

Global site tag (gtag.js) - Google Analytics