zipInputStream 应用
来源:互联网 发布:mac win7激活密钥 编辑:程序博客网 时间:2024/05/06 13:27
package org.chapter.io;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.util.List;
import java.util.Scanner;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingWorker;
public class ZipTest {
public static void main(String[] args) {
new ZipFrame();
}
}
class ZipFrame extends JFrame {
private JComboBox fileCombo;
private JTextArea fileText;
private String zipname;
public ZipFrame() {
this.setTitle("ZIP");
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setBounds((dim.width - 500) / 2, (dim.height - 500) / 2, 500, 500);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menubar = new JMenuBar();
JMenu menu = new JMenu("File");
JMenuItem openItem = new JMenuItem("Open");
menu.add(openItem);
openItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
int r = chooser.showOpenDialog(ZipFrame.this);
if (r == JFileChooser.APPROVE_OPTION) {
zipname = chooser.getSelectedFile().getPath();
fileCombo.removeAllItems();
scanZipFile();
}
}
});
JMenuItem exitItem=new JMenuItem("Exit");
menu.add(exitItem);
exitItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
});
menubar.add(menu);
setJMenuBar(menubar);
fileText =new JTextArea();
fileCombo =new JComboBox();
fileCombo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
loadZipFile((String)fileCombo.getSelectedItem());
}
});
add(fileCombo,BorderLayout.SOUTH);
add(new JScrollPane(fileText),BorderLayout.CENTER);
}
public void scanZipFile() {
new SwingWorker<Void, String>() {
@Override
protected Void doInBackground() throws Exception {
ZipInputStream zip = new ZipInputStream(new FileInputStream(
zipname));
// 在读取zip留的时候这个比不可少
ZipEntry entry;
while ((entry = zip.getNextEntry()) != null) {
publish(entry.getName());
// 此方法是读取下一页,在当前项结束
zip.closeEntry();
}
zip.close();
return null;
}
@Override
protected void process(List<String> names) {
for (String name : names) {
fileCombo.addItem(name);
}
}
}.execute();
}
public void loadZipFile(final String name) {
fileCombo.setEnabled(false);
fileText.setText("");
new SwingWorker<Void, Void>() {
@Override
protected Void doInBackground() throws Exception {
try {
ZipInputStream zip = new ZipInputStream(
new FileInputStream(zipname));
ZipEntry entry;
while ((entry = zip.getNextEntry()) != null) {
if (entry.getName().equals(name)) {
Scanner in = new Scanner(zip);
while (in.hasNextLine()) {
fileText.append(in.nextLine());
fileText.append("\n");
}
}
zip.closeEntry();
}
zip.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void done() {
fileCombo.setEnabled(true);
}
}.execute();
}
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.util.List;
import java.util.Scanner;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingWorker;
public class ZipTest {
public static void main(String[] args) {
new ZipFrame();
}
}
class ZipFrame extends JFrame {
private JComboBox fileCombo;
private JTextArea fileText;
private String zipname;
public ZipFrame() {
this.setTitle("ZIP");
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setBounds((dim.width - 500) / 2, (dim.height - 500) / 2, 500, 500);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menubar = new JMenuBar();
JMenu menu = new JMenu("File");
JMenuItem openItem = new JMenuItem("Open");
menu.add(openItem);
openItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
int r = chooser.showOpenDialog(ZipFrame.this);
if (r == JFileChooser.APPROVE_OPTION) {
zipname = chooser.getSelectedFile().getPath();
fileCombo.removeAllItems();
scanZipFile();
}
}
});
JMenuItem exitItem=new JMenuItem("Exit");
menu.add(exitItem);
exitItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
});
menubar.add(menu);
setJMenuBar(menubar);
fileText =new JTextArea();
fileCombo =new JComboBox();
fileCombo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
loadZipFile((String)fileCombo.getSelectedItem());
}
});
add(fileCombo,BorderLayout.SOUTH);
add(new JScrollPane(fileText),BorderLayout.CENTER);
}
public void scanZipFile() {
new SwingWorker<Void, String>() {
@Override
protected Void doInBackground() throws Exception {
ZipInputStream zip = new ZipInputStream(new FileInputStream(
zipname));
// 在读取zip留的时候这个比不可少
ZipEntry entry;
while ((entry = zip.getNextEntry()) != null) {
publish(entry.getName());
// 此方法是读取下一页,在当前项结束
zip.closeEntry();
}
zip.close();
return null;
}
@Override
protected void process(List<String> names) {
for (String name : names) {
fileCombo.addItem(name);
}
}
}.execute();
}
public void loadZipFile(final String name) {
fileCombo.setEnabled(false);
fileText.setText("");
new SwingWorker<Void, Void>() {
@Override
protected Void doInBackground() throws Exception {
try {
ZipInputStream zip = new ZipInputStream(
new FileInputStream(zipname));
ZipEntry entry;
while ((entry = zip.getNextEntry()) != null) {
if (entry.getName().equals(name)) {
Scanner in = new Scanner(zip);
while (in.hasNextLine()) {
fileText.append(in.nextLine());
fileText.append("\n");
}
}
zip.closeEntry();
}
zip.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void done() {
fileCombo.setEnabled(true);
}
}.execute();
}
}
----------------------------------------------效果图---------------------------
- zipInputStream 应用
- ZipInputStream类
- ZipInputStream & ZipOutputStream
- ZipInputStream使用
- ZipOutputStream 和 ZipInputStream 例子
- java.util.zip.ZipInputStream翻译
- java 解zip文件(ZipInputStream)
- java语言SDK中ZipInputStream
- 压缩解压缩工具 ZipInputStream ZipOutputStream
- java.util.zip类 ZipInputStream
- 解决ZipInputStream不能正确处理中文文件名
- 让ZipOutputStream和ZipInputStream支持中文
- Java IO 之 ZipFile/ZipInputStream/ZipOutputStream
- deflate and inflate simple demo (ZipInputStream/ZipOutputStream)
- Java IO--压缩流ZipOutputStream/ZipInputStream
- Java IO 压缩流(ZipOutputStream/ZipInputStream)
- 让ZipOutputStream和ZipInputStream支持中文
- 解决ZipInputStream不能正确处理中文文件名
- 网络抓取
- C# CheckedListBox控件的用法
- IOS正则表达式
- Coding related.
- (CSDN)让开发者高效编程的10个新框架
- zipInputStream 应用
- UFT11.5 问题持续记录
- httpURLConnection httpClient
- java反射详解
- 设计包含min函数的栈
- MySQL常见错误
- LINUX各目录功能介绍及路径写法
- java创建文件和目录
- 视图的INSERT、UPDATE、DELETE注意事项