`

两段代码审视编码能力

阅读更多

java web开发中,文件上传真是太常要的功能了。

 

对文件上传代码 可以说知道IO操作的人 都知道如何去写,写出来的程序都能达到功能需求。

哪么写出来的质量如何,就得去比较。

 

这是一段:

public static void uploadFile(InputStream inputStream,
			String saveDirectory, String saveFileName) {

		final int BUFFER_SIZE = 0x200000;// 2M的缓冲
	
		try {
			BufferedOutputStream buf = new BufferedOutputStream(
					new FileOutputStream(saveDirectory + File.separator
							+ saveFileName), BUFFER_SIZE);

			BufferedInputStream inbuf = new BufferedInputStream(inputStream,
					BUFFER_SIZE);
			byte[] buffer = new byte[BUFFER_SIZE];
			int bytesRead = 0;

			while ((bytesRead = inbuf.read(buffer, 0, buffer.length)) != -1) {
				buf.write(buffer, 0, bytesRead);// 将文件写入服务器
			}
			buf.flush();
			buf.close();
			inbuf.close();
		} catch (Exception e) {
			throw new RuntimeException("---[FileUtil uploadFile]----");
		}
	}

 再看另一段:

 

public static void writeToFile(FormFile imgFile, String origionalPath) throws IOException{
		//保存上传的文件
		FileOutputStream oldimage = null;
		InputStream fin = null;
		byte[] data = new byte[8192];
		try {
			fin = imgFile.getInputStream();
			oldimage=new FileOutputStream(origionalPath);
			do{
				int rc = fin.read(data);
				if(rc == -1)
					break;
				oldimage.write(data, 0, rc);
				if(rc < data.length)
					break;
			}while(true);
		}finally{
			data = null;
			if(oldimage!=null)
				oldimage.close();
			if(fin!=null)
				fin.close();
		}
	}

 

通过两段代码的比较,可见两个人的编码水平如何。

 

同步bolg :http://www.java1995.cn/blog/item/40

0
0
分享到:
评论
3 楼 johnson.lee 2009-12-05  
新手往往是进门的时候,开了门,走了时候,拍屁股就走人,忘记随手把门带上了。
2 楼 east_java 2009-12-02  
johnson.lee 写道
原来是缓冲与非缓冲流的效率问题。

呵呵。。。再仔细看看哟
1 楼 johnson.lee 2009-11-27  
原来是缓冲与非缓冲流的效率问题。

相关推荐

    重构改善既有代码的设计PPT课件

    持续进行重构还可以提升开发人员的设计和编码能力。 在何时进行重构这一问题上,有几个关键时机。当代码变得难以理解和维护,或者在增加新功能或修复错误时发现需要改进代码结构时,都应考虑重构。同时,代码审查...

    编码过程质量保证的初步设计

    定期的代码评审制度则是为了从不同角度审视代码的设计与实现是否合理,而重要文档的评审制度则确保了项目文档的完整性和准确性。 在质量保证的过程中,单元测试占据着核心地位。单元测试是在编码阶段同步进行的,其...

    代码审核和代码重构.pdf

    这种实践允许开发者从不同的视角审视代码,从而发现那些在独立编码时可能会忽视的问题。在多人协作项目中,代码审核不仅是重要的质量保证环节,也是代码共享和知识传递的过程。当代码审核成为常规时,它有助于增强...

    软件工程的代码审查与重构.pptx

    - **持续改进**:不断地审视现有的代码审查和重构流程,寻找改进的空间。 #### 第六章 总结 通过对软件工程中的代码审查与重构的深入探讨,我们认识到这两个环节对于提高软件质量和可维护性的重要性。代码审查有助...

    如何成为合格程序员

    - **精通的概念**:这里的“精通”并不是指简单地阅读一本快速入门书籍或复制几段代码就能达成的状态。它需要长期的实践经验和不断的学习过程来积累。 - **选择合适的语言**:根据个人兴趣和发展方向选择适合的...

    完美版课件资料第7章面向对象软件开发过程-细化阶段深入.ppt

    而在本次迭代中,我们将从更广泛的视角审视分析和设计,考虑用例之间的关系、泛化建模、状态建模、分层架构、包设计、架构分析以及对象持久化设计等更多细节问题。 建立用例关系是细化阶段的一个重要任务。用例之间...

    如何学好JAVA编程[文].pdf

    编码时,阅读《重构》以改善代码质量,同时,通过《Thinking in Design Pattern with java》学习如何写出更优雅的代码。这时,你应该已经具备较高的代码专业度和分层设计能力,遵循高内聚、低耦合的原则。 阅读...

    SSD!单选题+答案

    编码阶段需要遵循良好的编程实践,确保代码质量和可维护性。 - **测试阶段**: 测试是验证软件是否满足其功能和非功能需求的重要步骤。这包括单元测试、集成测试、系统测试等。测试阶段的目标是识别并修复软件中的...

    信息系统分析与设计(课件案例)

    编码过程需要开发者根据设计文档编写出能够被计算机执行的程序代码。这要求开发者不仅要熟练掌握编程语言,更要对系统架构有清晰的理解。测试阶段则是为了验证系统是否按照既定需求实现了功能,包括了单元测试、集成...

    软件测试期末考试题.pdf

    软件测试不仅是一系列查找错误的操作,它更是一种逻辑推理和验证的过程,其中涉及到对需求、设计、编码和维护各个阶段的严格审视。 当我们回顾软件缺陷的成因时,需求说明书通常被认为是导致软件缺陷的主要原因。这...

    程序员述职报告优质借鉴.doc

    以下是对这两份程序员述职报告的详细分析和相关知识点的提取: 1. **思想方面**: - 程序员应具备良好的职业道德和职业素养,包括爱岗敬业、强烈的责任感和事业心。 - 自我审视和总结是个人成长的关键,持续学习...

    软件测试方法论

    软件测试的方法主要分为两大类:黑盒测试和白盒测试,它们各自从不同的角度出发,对软件进行全方位的审视。 - **黑盒测试**,也称为功能测试或数据驱动测试,主要关注于软件的功能表现,而非内部实现细节。这种测试...

    挺全的vs2008快捷键文档

    在需要暂时禁用某段代码时非常有用。 - **CTRL+K,CTRL+C**:注释选定文本。用于临时性地忽略某些代码块。 - **CTRL+K,CTRL+U**:取消注释。与上一条相反,用于恢复被注释掉的代码。 - **CTRL+M,CTRL+O**:折叠...

    基于UML考试系统的分析

    UML(统一建模语言)是一种广泛使用的标准化建模语言,它帮助软件开发者在软件开发的各个阶段,如需求分析、系统设计、编码实现和测试等,构建可视化模型并生成文档资料。UML在模拟大型和复杂系统中被证明是非常成功...

    计算机开发人员辞职报告模板.doc

    这些项目不仅锻炼了我的编程技能,如熟练掌握了Java、Python、C++等语言,还让我深入理解了软件开发生命周期,从需求分析到系统设计,再到编码、测试和维护,每一个环节我都积累了宝贵的经验。 在xx管理领域,我...

    ReactJS的新特性在Web开发中的应用.pdf

    React 的设计思路非常独特,抛弃了很多目前被业界所公认的“最佳实践”,以组件驱动开发的方式去重新审视用户界面的构成,提出基于“Virtual DOM”(虚拟 DOM)对视图进行抽象,完全接管了原本开销较大的 DOM 操作,...

    华为软件开发规范3

    2. **局部效率**:指模块或者函数级别的效率,通常是在编码阶段关注的重点。 3. **时间效率**:衡量程序处理任务所需要的时间长度。 4. **空间效率**:指程序在运行过程中所占用的内存空间大小,包括机器代码空间、...

    PairProgramming:19秋地科结对编程

    1. **提高代码质量**:两个人共同审视代码可以减少错误,提高代码的健壮性和可读性。 2. **实时反馈**:在编码过程中,导航员可以立即指出驾驶员的错误,避免了后期大量调试工作。 3. **知识分享**:双方可以互相...

Global site tag (gtag.js) - Google Analytics