若天明 发表于 2015-1-18 11:53:02

JAVA网页设计Java的文件操纵--1

ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。前两天看了《java中心编程》中关于java中的IO输出输入解说,劳绩很多,上面的程序是我读完书今后本人写的一个将zip文件会合的文件内容读掏出来然后显现(只限于文本,其他文件将会发生乱码),此程序也可经由过程改善能够失掉一个和winzip功效一样的类(可是没有界面,次要是awt不会:--(),过两天就把源码贴出来。很复杂的一个类,但愿对人人有效。
这是自己第一次发文章,不敷的地方请多多指教!!!
/**
*功效:Zip文件开释,Zip文件目次、选择目次后显现文件内容
*起首用户输出zip文件路径及称号,读取zip文件将文件会合的文件清单显现出来,
*用户选择必要显现的文件,以后经由过程DataInputStream类将文件内容读掏出来并
*显现在尺度输入端
*日期:2005-06-27
*Pcera
*/
importjava.util.*;
importjava.util.zip.*;
importjava.io.*;classZipFileHandle{
privateString[]FileNameArray;//实在文件名寄存数组
privateString[]FileNameArrayShow;//必要显现的文件名寄存数组
privateZipInputStreamzipFile;//zip输出流对象
privateZipEntryentry;//zip文件出口对象
privateintzipFileCount=0;//zip中的文件总数

/**
*初始化各个参数
*经由过程类的套嵌来会见文件
*将失掉文件的清单附值给数组,以便在前面用户选择时从数组中取得文件名
*/
publicZipFileHandle(Filefile){
try{
while(!(file.exists())){
System.out.println("Plaseinputrightpathagain:");
BufferedReaderuserInput=newBufferedReader(newInputStreamReader(System.in));
Stringfilepath=userInput.readLine();
file=newFile(filepath);
}
zipFile=newZipInputStream(newFileInputStream(file));
while((zipFile.getNextEntry())!=null){
zipFileCount++;
}
FileNameArray=newString;
FileNameArrayShow=newString;
}catch(IOExceptione){
System.out.println("初始化毛病!!!");
e.printStackTrace();
}
}
/**
*天生文件目次
*依据show的值来断定前往值
*假如show的值为"sh"则前往在屏幕上显现的称号
*假如show的值为"gr"则前往实践称号
*/
publicString[]getFileNameList(Stringshow,Filefile){
try{
inti=0;
StringFileName;
zipFile=newZipInputStream(newFileInputStream(file));
while((entry=zipFile.getNextEntry())!=null){
FileName=entry.getName();
//实在文件名附值
FileNameArray=FileName;
//显现文件名附值
if(FileName.equals(""))FileName="...";
FileName=Integer.toString(i)+"-|"+FileName;
FileNameArrayShow=FileName;
i++;
}
zipFile.close();
//依据前提前往文件数组
if(show=="sh"){
returnFileNameArrayShow;
}else{
returnFileNameArray;
}
}catch(IOExceptione){
System.out.println("读取zip文件内的文件名堕落!!!");
e.printStackTrace();
returnnull;
}
}

/**
*读取文件内容
*依据传送出去的zip文件对象和
*zip中所要显现的文件
*用户依据type来选择前往的是unicode信息还字节信息
*假如type是"Str"则前往字符串信息,"Byte"则前往经由过程字节取得的文件内容
*/
publicStringloadFileCon(StringfileName,Filefile,Stringtype){
StringfileContent="",conTemp="";
byte[]fileConfByte;
try{
//找到要显现的文件出口,然后读取经由过程文本格局读取文件内容
zipFile=newZipInputStream(newFileInputStream(file));
//读取文件内容
while((entry=zipFile.getNextEntry())!=null){
if(entry.getName().equals(fileName)){
//经由过程字节读取文件内容
if(type.equals("Byte")){
fileConfByte=newbyte[(int)entry.getSize()];
DataInputStreamreader=newDataInputStream(zipFile);
reader.readFully(fileConfByte,0,(int)entry.getSize());
fileContent=newString(fileConfByte);
}elseif((type.equals("Str"))){
//经由过程unicode字符读取文件内容
BufferedReaderin=newBufferedReader(newInputStreamReader(zipFile));
while((conTemp=in.readLine())!=null){
fileContent=fileContent+conTemp+"
";
}
}
}
}
//封闭文件zip流
zipFile.closeEntry();
zipFile.close();
//前往
returnfileContent;
}catch(IOExceptione){
System.out.println("读取文件内容失利!!!");
e.printStackTrace();
returnnull;
}

}

/**
*演示办法
*/
publicstaticvoidmain(Stringargs[]){
StringfilePath;
String[]showFileArr;
String[]realFileArr;
StringfileContent;
intchoose;
//经由过程用户取得文件路径和文件名
try{
BufferedReaderuserInput=newBufferedReader(newInputStreamReader(System.in));
System.out.println("Plasezipfilepathandname!!!");
filePath=userInput.readLine();
Filefile=newFile(filePath);
while(!(file.exists())){
System.out.println("Plaseinputrightpathagain:");
filePath=userInput.readLine();
file=newFile(filePath);
}
//显现文件目次,显现选择的文件的内容
//取得实在文件名和显现文件名数组
ZipFileHandlezipFile=newZipFileHandle(file);
showFileArr=zipFile.getFileNameList("sh",file);
realFileArr=zipFile.getFileNameList("gr",file);
//打印显现文件名数组
inti=0;
while(i<showFileArr.length){
System.out.println(showFileArr);
i++;
}
//经由过程用户输出取得必要显现的文件
System.out.println("Plasechoosefilenum!!!");
choose=Integer.parseInt(userInput.readLine());
if((choose<0)||(choose>showFileArr.length)){
System.out.println("Plasechoosefilenumretry!!!");
choose=Integer.parseInt(userInput.readLine());
}
//取得用户选择的文件的内容
fileContent=zipFile.loadFileCon(realFileArr,file,"Byte");
System.out.println(fileContent);

}catch(Exceptione){
System.out.println("测试程序堕落!!!");
e.printStackTrace();
}
}
}

Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)

灵魂腐蚀 发表于 2015-1-21 16:42:00

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

简单生活 发表于 2015-1-30 21:15:41

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。

小妖女 发表于 2015-2-2 22:43:53

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。

小女巫 发表于 2015-2-8 19:20:13

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

不帅 发表于 2015-2-12 22:53:46

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

若相依 发表于 2015-2-28 21:54:28

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

再见西城 发表于 2015-3-6 13:25:17

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

变相怪杰 发表于 2015-3-11 00:31:26

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

兰色精灵 发表于 2015-3-17 17:08:24

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

精灵巫婆 发表于 2015-3-18 08:05:08

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

再现理想 发表于 2015-3-25 13:47:24

是一种突破用户端机器环境和CPU

若天明 发表于 2015-3-26 20:46:07

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

海妖 发表于 2015-4-1 12:21:59

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

老尸 发表于 2015-4-1 16:10:00

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

冷月葬花魂 发表于 2015-4-11 08:42:54

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

飘飘悠悠 发表于 2015-4-16 00:09:03

你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。

透明 发表于 2015-6-26 21:23:28

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

山那边是海 发表于 2015-7-7 21:37:27

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

蒙在股里 发表于 2015-7-10 19:57:40

是一种语言,用以产生「小应用程序(Applet(s))
页: [1] 2
查看完整版本: JAVA网页设计Java的文件操纵--1