`
kukuqiu001
  • 浏览: 210669 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

python challenge challenge6之java解

阅读更多
challeng5 是使用Python的pickle模块,对对象进行持久化管理。java和python的对象持久化算法不同,没法代替。

python解法在http://lampeter123.iteye.com/blog/398535
里面介绍的比较详细,偶就不说了

但是这个java解法是不能得得到答案的
java zip解压时没法把每个文件里面的comments读取出来,都是null
而python可以读出来


import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.GetMethod;

public class Challenge6Zip {
	
	private final static int BUFFER = 1024; 
	
	private final static String destPath = "D:\\temp";
	
	public static void main(String[] args) {
//		downloadZipfile();
		extractZipFile();
//		readFile();
		
//		readZipComments();
	}

	private static void readZipComments() {
		
		
	}

	private static void readFile() {
		String number = "90052";
		for(int i=0; i<910;i++){
			try {
				FileInputStream fis = new FileInputStream(new File(destPath+"\\"+number + ".txt"));
				String line;
				BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
				line = reader.readLine();
				StringBuilder builder = new StringBuilder();
				while(line!=null){
					builder.append(line);
					line = reader.readLine();
				}
				String fileStr = builder.toString();
				if(fileStr.indexOf("Next nothing")!=-1){
					String[] strArr = builder.toString().split(" ");
					number = strArr[strArr.length-1];
					System.out.println("number =" + number);
				}else{
					System.out.println(fileStr);
				}
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}	
		}
				
			
		
	}
// java解包,没发现comments
	
	private static void extractZipFile() {
		
		try {
			FileInputStream fis = new FileInputStream(new File("D:\\temp\\channel.zip"));
			ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));
			ZipEntry entry;
			while((entry = zis.getNextEntry())!= null){
				System.out.println("entry name = " + entry.getName());
				System.out.println("entry comments = " + entry.getComment());
				File zipFile = new File(destPath + "\\"+ entry.getName());
				if(entry.isDirectory()){
					if(!zipFile.exists())
						zipFile.mkdirs();
				}else{
				     FileOutputStream entryFos = new FileOutputStream(zipFile);
				     int len;
				     byte[] b = new byte[BUFFER];
				     while((len = zis.read(b))!=-1){
				    	 entryFos.write(b, 0, len);
				     }
				     System.out.println("not Dir entry comments = " + entry.getComment());
				     zis.closeEntry();
				     entryFos.close();
				}
			}
			fis.close();
			zis.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	private static void downloadZipfile() {
		HttpClient client = new HttpClient();
		GetMethod get = new GetMethod(
				"http://www.pythonchallenge.com/pc/def/channel.zip");
		try {
			client.executeMethod(get);
			InputStream in = get.getResponseBodyAsStream();
			
			FileOutputStream out = new FileOutputStream(new File("D:\\temp\\channel.zip"));
			
			byte[] b = new byte[BUFFER];
			int len = 0;
			while((len=in.read(b))!=-1){
				out.write(b, 0, len);
			}
			in.close();
			out.close();
		} catch (HttpException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally{
			get.releaseConnection();
		}
		System.out.println("success!");
	}

}
分享到:
评论

相关推荐

    python challenge challenge2之java解

    标题“python challenge challenge2之java解”涉及到的是一个Python挑战赛的第二关,而解决方案是通过Java语言来实现的。这个挑战可能是一个编程难题或竞赛,要求参赛者使用特定的技术来解决问题。在这种情况下,...

    pythonchallenge level2官方方法集

    标题和描述均提到了"pythonchallenge level2官方方法集",这表明文章主要聚焦于Python Challenge网站上第二级挑战的官方解决策略集合。Python Challenge是一个知名的编程谜题网站,通过一系列精心设计的谜题来测试和...

    coding_challenge:Jungi和Hui的Python和Java的Leetcode和HackRank解决方案

    在这个名为“coding_challenge”的压缩包中,我们找到了Jungi和Hui两位编程爱好者分享的Python和Java语言在解决LeetCode和HackRank上的编程挑战。这些挑战通常涉及到算法、数据结构和逻辑思维,是提升编程技能和准备...

    evreka-challenge-源码.rar

    6. **依赖管理**:如果是Java项目,可能有`pom.xml`(Maven)或`build.gradle`(Gradle)文件来管理依赖;Python项目可能有`requirements.txt`。这些文件列出项目所依赖的外部库及其版本。 7. **构建和部署**:`...

    stoerk-tronic-comander-challenge-源码.rar

    6. **编程规范**:源码可能遵循特定的编码规范,如PEP8(Python)、Google Java Style Guide等,这有助于提高代码的可读性和团队协作。 7. **问题解决**:挑战可能围绕特定问题,如网络通信、图像处理、数据库操作...

    Challenge-源码.rar

    例如,一个Web应用的源码可能包括HTML、CSS和JavaScript文件,以及服务器端的脚本(如Python、Java或Node.js)。如果这是一个开源项目,它可能会包含README文件,用于介绍项目的目的、安装步骤和使用方法。此外,还...

    java前后端分离源码-code-challenge-backend:希望加入Doro团队的后端开发人员面临的编码挑战

    Python、Java 或 node.js 是不错的选择 测试(对所选解决方案进行适当的测试) Linter(您选择的) 指示 Fork 这个 repo,或者如果你不想 fork,把你自己的私有化并邀请我们 构建一个干净而健壮的解决方案 在您选择...

    Skillrack-Daily-Challenge-And-Daily-Test-源码.rar

    描述中的内容简单明了,仅提及了源码,意味着我们期待找到的是各种编程语言的代码文件,比如Python、Java、C++或JavaScript等。这些源代码可能包含了不同难度级别的挑战,覆盖了基础语法、数据结构、算法以及更高级...

    2018-phm-data-challenge-master_PHM_2018_PHO_propergnf_zip.zip

    该压缩包文件"2018-phm-data-challenge-master_PHM_2018_PHO_propergnf_zip.zip"包含的是一个名为"2018-phm-data-challenge-master"的项目,该项目可能与2018年的一个预测性健康管理(PHM,Predictive Health ...

    qa-challenge-task-源码.rar

    2. **编程语言**:源码的编写通常使用某种编程语言,例如Java、Python、C++或JavaScript。分析源码时,需要对所使用的编程语言有深入的理解,包括语法、数据类型、控制结构、函数和类的使用等。 3. **编程规范**:...

    java源码无法显示-display-advertising-challenge:CTR预测的Criteo/Kaggle竞赛

    java源码无法显示展示广告挑战 描述 这是为 . 由于数据非常稀疏,基本方法是使用逻辑回归和适当的二次/多项式特征生成和正则化来制作复杂且过拟合易于处理的模型。 是用于该项目的主要机器学习软件。 由于我的个人...

    Long-Challenge-codechef

    在算法竞赛中,Python虽然可能在运行速度上不如C++或Java,但其强大的功能和易于学习的特点使得它成为许多参赛者的首选语言。对于Long Challenge中的问题,Python可以有效地实现各种复杂算法,包括搜索、排序、图论...

    leetcode卡-Leetcode-MAY-Challenge:这个存储库是为LeetcodeMayChallenge的cpp、python

    Challenge 的 C++、Java 和 Python 解决方案制作的。 先尝试自己解决这些问题,然后您可以参考这些解决方案。 接受此处提供的所有解决方案,并注意约束。 这是问题的链接:这个存储库是为 Leetcode May Challenge 的...

    2018-phm-data-challenge-master_PHM_2018_PHO_propergnf_zip_源码.zip

    通常,这样的文件会包含各种编程语言的代码文件,例如Python、Java、C++或R,以及可能的配置文件、数据集、README文档等资源。 对于这样一个项目,我们可以预期以下知识点: 1. **数据预处理**:在预测性维护中,...

    基于python的开放领域事件抽取系统源码数据库论文.doc

    enhance customer stickiness, and facilitate rapid product updates and iterations, it is necessary to collect and analyze customer feedback information, which poses the challenge of quickly processing...

    leetcode答案-October-LeetCoding-Challenge:此存储库包含迄今为止所有10月LeetCode挑战的答案

    每个题目通常会有多种解法,包括但不限于Java、C++、Python等语言,这使得学习者可以根据自己的偏好选择合适的实现方式。 1. 数据结构:LeetCode的题目中,数据结构的运用十分广泛,例如数组、链表、栈、队列、堆、...

    扩展矩阵leetcode-algorithm-challenge-python:这是Python中的算法挑战池

    算法挑战-python 来自 CareerCup、GlassDoor、LeetCode 或其他托管问题的站点的问题的 Java 解决方案的集合。 如果您有任何问题或想与我分享您的想法,请给我一张票 :beaming_face_with_smiling_eyes: . 请记住,当...

    -Challenge-Cup

    例如,参赛者可能需要使用Python、Java或C++等编程语言来实现高效算法,解决实际问题,如大数据处理、人工智能模型构建或者网络安全攻防等。 其次,这样的活动往往涵盖了多种技术领域,包括但不限于机器学习、人工...

Global site tag (gtag.js) - Google Analytics