javarivate的简单介绍
本篇文章给大家谈谈javarivate,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、关于java的持久化,ejb和hibernate哪个应用的广些?
- 2、public/private/protected的具体区别
- 3、java 读取一个路径下的所有 xml类型的文件?
- 4、java:为什么我放在同一个package里的class不能互相调用呢??
- 5、手机安装QQ,每次都是应用未安装,该怎么办?
- 6、java ftps 文件增删改查,用apache的commons-netjar包,求高手给个例子,注意是ftps哦,不是ftp
关于java的持久化,ejb和hibernate哪个应用的广些?
应该说EJB中对于数据的持久化方面和hibernate的功能是一致的,但两者没法从全局上比较,两者的适合范围和功能区别实在太大
一段时间以来,EJB、Hibernate、Spring的恩怨情仇,是J2EE的热门话题。EJB VS Hibernate、EJB VS Spring这样的议题随处可在。这篇文章,笔者试图通过对技术发展史的回顾,对source的剖析、对比,深入挖掘这些技术出现的初衷、缺陷、走向。
前言
我强调EJB、Hibernate、Spring的恩怨情仇,同时也必须说明,我一向反感你说我怎么侵入、你说我怎么依赖式的EJB VS Hibernate、EJB VS Spring的讨论,因为这种行为本身就是没有意义的、错误的。我提倡从正确的技术对比和理性的技术批判中受益。对比,我们需要找准对比点;批判,我们需要从source、spec、application context中分析、批判。
从EJB说起
2.1 EJB几种Bean类型的引入顺序
EJB1.0,有两种Bean类型:SessionBean、EntityBean。
EJB2.0,引入CMP EntityBean、引入Message-Driven Bean、引入Local接口。
2.2 Entity Bean和O/R Mapping的微妙关系
我想对O/R Mapping、O/R Mapping Engine做一个简要的说明。
O/R Mapping,以对象视图(Object View)来看待DB Record,对象操作能够通明地映射成DB Record操作。
O/R Mapping Engine,就是使得O/R Mapping成为可能的具体实现手法。
从我们的定义来看,使用BMP EntityBean意味着你自己在实施一个非常简单的O/R Mapping ,你自己在为能够以对象视图和DB交互做出努力。而为了支持CMP EntityBean,EJB Server提供商会为你提供O/R Mapping 能力。而且,事实的确是这样,任何支持CMP EntityBean的EJB Server都需要提供一个Persistence(O/R Mapping) Engine,譬如JBOSS的JAWS(Just Another Web Store)。
至于,Hibernate、IBATIS等,虽然,也叫做O/R Mapping Tool,但是它们的意义已经远远超过了CMP EntityBean O/R Mapping Engine这样的Tool。下面会有详细的分析。
2.3 EJB-1.0
EJB1.0是分布式组件架构,包括SessionBean和EntityBean。它引入了很多非常前卫的技术、概念。主要包括分布式组件、容器、DB操作的对象试图。
EJB1.0,可能Expert Group设想的EJB的应用场景是大规模分布式的系统。所以,SessionBean、EntityBean尚没有引入Local接口。 client-SessionBean、client-EntityBean、SessionBean-SessionBean、SessionBean-EntityBean等等都是remote的。
EJB1.0,将容器这个概念引入EJB,意义重大。这里我想顺便澄清一个问题:容器是什么?我的观点:容器只是一个概念、一种架构。就拿EJB Server来说,Server试图为Bean提供分布式、事务、安全等基础设施,那么就必须有一个凌驾于Bean之上的Layer或者说warp,这样才能够从高层拦截Bean调用,进行一些额外操作。这样的架构就叫做容器架构,这个概念当然不是自EJB才有的。至于怎样实现,方法各异。
事实上,以个人的观点,容器架构的核心,不在于从高层“掌握”Beans(Objects),而在于采用怎样的技术来实现Bean(Object)调用的拦截。无疑,EJB Servers和Spring的实现手法是不同的。下面会详细讨论这个问题。
EJB1.0为DB操作提供了对象试图。Expert Group当初是怎样定位EntityBean的?无疑,1.0中的EntityBean,也就是2.0以后的BMP EntityBean,定位是Domain Object(我不知道当时有没有这个概念,只是它们的思想是非常一致)。它的fields直接映射DB Table Schema,member functions就是对Table Record的操作。Client-EntityBean、SessionBean-EntityBean等就可以直接和数据库交互了。
有人跟我说EJB1.0基于Catalysis方法学,SessionBean对应Role,EntityBean对应Domain Object。到目前为止,我对这种说法,持保留态度,因为EJB Spec中,我丝毫没有这种说法的痕迹。
2.4 EJB-2.X
无疑,EJB1.X的设计存在重大的缺陷。2.0增加的特性包括Local接口、CMP EntityBean,它们是对1.x缺陷的重大更正。
首先,事实上没有多少Expert Group想象中的大规模分布式应用。我们从两个方面来说:(1)通过Remote方式使用 EntityBean引起严重的性能问题,很有必要提供Local接口。(2)访问SessionBean的WebApplication和SessionBean部署在同一服务器上的情况非常普遍,所以提供SessionBean的Local接口,也是必然的事情。2.X之后,最常用的一个Pattern就是使用SessionBean Façade通过Local的形式访问EntityBean。而且,即使应用规模大到连SessionBean和EntityBean都需要部署到不同的Server,也没有关系,因为EJB2.X同样支持Remote接口。
其次,EJB2.0引入CMP EntityBean。CMP EntityBean解决了EntityBean持久化表示和JDBC分离的问题,同时大大简化了EntityBean的开发、提高了性能。但是,我不得不说,CMP EntityBean将EJB1.X的Domain Model理念完全冲掉了,因为CMP EntityBean是不能包含任何Domain Logic的。BMP EntityBean似乎就是Matrin所说的DomainObject,而CMP EntityBean在典型的SessionBean-EntityBean这样的应用场景下,似乎就是Martin所说的Transaction Script中的AnaemicDomainObject。
顺便说一下,我个人是不同意Martin的RichDomainObject的说法。因为,在数据应用系统中,Martin提到的相对于Transacton Script中AnaemicDomainObject的RichDomainModel往往没有反映现实世界。一个Bank Account反映到现实世界,就是账本中的一条记录,它没有自发的动作,譬如withdraw。它和Person不同,Person可以有say(String words)这样的自发动作。Account的withdraw应该放到AccountManager中,由AccountManger来操作Account。不是说OO中的Object都需要有动作,现实世界中,本来就有静态的、没有自发动作的事物,譬如一个账本、一个帐号、一个资料库。虽然,不可否认,Rich Domain Model(对比AnaemicDomainObject说的)能够带来不少的好处(什么样的好处,你看看Martin的《Domain Logic and SQL》,就知道了)。
三、我理解的Hibernate
本来,本文的题目叫做《EJB、Spring:剖析、批判和展望》,因为我觉的Hibernate和EJB、Spring不是一个层次的东西,虽然,这个道理很浅显,但是为什么那么多人还拿Hibernate来攻击EJB,来攻击EntityBean?EntityBean是值得狠狠攻击的,但是你用错了枪。
我上面提到,支持CMP EntityBean的EJB Implements都有一个Persistence Engine,也就是O/R Mapping Engine。CMP O/R Mapping Engine用来做什么的?它通过分析CMP Abastract Schema、分析EJBQL、分析Bean状态等行为,生成SQL,然后和DB 进行交互。
而在我眼里,Hibernate不是”O/R Mapping Tool”这几个字能概括的了。我说Hibernate是一款独当一面的轻量级翻译中间件,是Layer,和CMP EntityBean O/R Mapping Engine不是一个层次的东西了。
Application-------CMP EntityBean Operation--------DB
|
(O/R Mapping Engine)
----------------------
|---HQL、Criteria Query
Application------ Hibernate ------ |---POJO/PO Operation--------- DB
|---and so on
通过上面的两个图,你看出区别来了吗?
EntityBean应用,不知道O/R Mapping Engine的存在,只需要使用EntityBean来完成交互。
而在Hibernate应用中,Application是直接使用Hibernate的。也就是说,它是直接使用O/R Mapping Engine的。
在这里,我建议你停下来,想想EntityBean是不是应该对应Hibernate中的PO/POJO?举个例子,你修改PO后,是不是需要sessionObj.update(po)来更新,这个sessionObj.update(po)是不是表示你直接使用Hibernate的Persitence Engine?是的。而在EntityBean中,你修改EntityBean后,你需要其它的行为来使得EntityBean的变化同步到DB吗?不需要。因为,EJB Container拦截你的调用,在你更改Bean的field之前、之后,container会调用load/store方法的(当然,在BMP/CMP EntityBean中,情况是不同的,BMP EntityBean调用programmer自己用JDBC编写的load/store等方法,而CMP EntityBean,使用CMP Peristence Engine来做这个工作)。这样,就隐式的持久化数据了。不需要,你像Hibernate那样调用session.update这样的语句。EntityBean这种同步方式是对它性能差的重要原因之一。值得注意的是,EJB Implements对于EntityBean同步并不完全是我上面描述的那样,同步的频率和事务、特定的implements是紧密相关的。
总的来说,CMP EntityBean O/R Mapping Engine是为静态的、功能固定的EntityBean的O/R Mapping提供支持而开发的。而Hibernate担任的是一个Layer的作用。
四、Spring不是神话
Rd Johnson聪明在哪里?聪明在,他坚持了自己的实践,而不是随大流。Rd Johnson认识到90%的应用不需要分布式、不需要J2EE中那些重量级的技术,譬如JNDI,他就动手为EJB脱去Remote这层皮、将大多数应用中不必要的技术隔离、改造。从适用范围上来说,Spring对EJB做了90%的补充。
个人看法:Spring的哲学在于,framework针对最常见、最简单的应用场景而设计,等到需要特殊技术的时候,再想办法解决问题。这样,在绝大多数没有特殊要求的应用中,Spring就显示出优势来了。下面,我们会做详细的讲解。
4.1 Spring“无侵入性“是谎言,但是有资格笑”百步之外的EJB”
“无侵入性”是Spring标榜的特性。但是,我想说,Spring的“无侵入”是谎言,随着应用的深入,“无侵入”对什么framework来说,都是个神化。
什么就叫“无侵入性”?部署到Spring中的Object不需要强制任何实现接口就可以说Spring是“无侵入性”的?我觉的,这是大错特错。如果你非要说,Spring的确不需要像EJB那样强制实现一些接口,那么我只能告诉你:
(1)Spring设想的Object的应用场景是从最简单的出发。所以,它没有,为了一些预料中要使用的特性而强制Object实现一些特定的接口。但是,事实上,在Spring中,如果你的应用场景稍微深入一点,那么你就和和Spring绑定了。
(2)Spring管理的Object,从某种意义上说是没有状态的。
针对第一点,我举两个个例子。(1)EJB内部方法的调用,会导致基础设施不会起作用。但是Bean接口(SessionBean、EntityBean、MessageDrivenBean)中都有可以使Bean获得自己Context的支持,譬如:SessionBean的setSessionContext(SessionContext ctx) 等等,容器部署Bean的时候会通过它给每个Bean设置一个上下文。而EJBContext中,有EJBObject getEJBObject这样的函数,可以使得Bean获得自身的EJBObject,这样通过EJBObject来调用Bean自己的函数,基础设施就会起作用了。而Spring中,如果,一个Object的函数需要调用自己的其它函数,而又希望譬如安全检查、事务等等Aspect起作用?那么Spring,怎么做?你需要设置Bean的exposeProxy属性。
ExposeProxy: whether the current proxy should be exposed in a ThreadLocal so that it can be accessed by the target. (It's available via the MethodInvocation without the need for a ThreadLocal.) If a target needs to obtain the proxy and exposeProxy is true, the target can use the AopContext.currentProxy() method.
所以,当你需要上面说的内部调用需要基础设施起作用的特性,不管在EJB还是Spring肯定需要和特定框架绑定的。为什么说,Spring五十步笑百步?因为,我上面提到,Spring在Object很简单的情况下,是可以任意部署的、复用的。而EJB却不管你需不需要,开始就设想你需要的。同样,Spring中的BeanFactoryAware、BeanNameAware等等接口也都说明了一点:Spring将特性从Object剥离,从而,尽量降低它的依赖性。只有当你的Object复杂的时候,framework才会侵入你的Object。
针对,第二点,我想着重谈一下。为什么说,从某种意义上说Spring中部署的对象是没有状态的?我们知道,Spring支持两种Object:Singleton和Prototype。Spring Spec中,认为,Singleton可以称为stateless的,Prototype可以称为是statefule的。而在EJB的世界中,StatefuleSessionBean和EntityBean也称作是stateful的。那么,它们的stateful分别意味着什么?它们为什么在依赖性方面有那么大的区别?为什么Spring中的Object不需要实现特定接口,而EJB需要?先来,看看EJB的SessionBean接口:
void ejbActivate()
The activate method is called when the instance is activated from its
"passive" state.
void ejbPassivate()
The passivate method is called before the instance enters the
"passive" state.
void ejbRemove()
A container invokes this method before it ends the life of the
session object.
void setSessionContext(SessionContext ctx)
Set the associated session context.
其中的setSessionContext我上面说过。看ejbActivate()、ejbPassive(),为什么会有这两个函数?而Spring不需要实现有同样函数的接口?这是EJB和Spring的对象管理机制的不同造成。EJB implements一般来说,为了复用Bean,会采用一级Cache加上一级InstancePool(StatelessSessionBean是不需要Cache的),从而支持将StatefulSessionBean持久化到磁盘,支持EntityBean的Bean Instance(注意这个Bean Instance和client得到的EntityBean是不同的,它没有和任何的DB Record关联)的复用,这就导致了ejbAcrivate、ejbPassivate等的引入。但是,Spring没有采用这样管理机制,它只有Singleton/Prototype。而Prototype虽然也可以说成是Statefule的,但是它不会在不同的client中复用Object Instance,而是每一个client一个对象,哪怕一万个client,那么就产生一万个Instance,而在EJB中,可能使用100 Instance来服务,将not active的Bean持久化到磁盘,复用Bean Instance。还请注意,这里我不是说EJB中的StatefuleSessionBean好,事实上我发现,一般来说,当并发量很大时,采用节约内存而持久化Bean到磁盘这种策略,I/O瓶颈引起的问题更为严重。
再看,ejbRemove,这个没什么多说的,Spring中你可以选择实现InitializingBean、DisposableBean接口,但是Spring推荐不要这样做,可以写普通的init成员函数,然后在配置文件中指明init-method、destroy-method属性,这样避免和Spring框架的绑定。
总的来说,Spring从对象最基本的引用场景出发,当需要复杂特性的时候,才会采用特殊机制来解决问题,也就是在这时,才会使应用绑定到Spring中。所以,它的侵入性比较低,但是不是“无侵入性”,不是你想的那么美好,当然,也没有“绝对无侵入“的framework。
4.2 我觉的Spring IOC的设计思路不够完美
Spring的IOC被一些人当作多么神奇的东西。
EJB具有Spring中所说的那种IOC的能力吗?答案是肯定的。EJB中的EJB引用、资源引用、环境属性都可以说是IOC,不是吗?然而,Spring和EJB的IOC不同在哪里?
Spring注入的特色:主要考虑Local Object的查找,这个时候不需要任何的协议(譬如JNDI),当你需要注入Remote Object的时候,采用RMI协议或者使用第三方Tool(譬如Hessian)。
EJB的特色:无论你的Bean-Bean是否部署在同一台机器上、Client-Bean是否在同一台机器上,肯定需要通过JNDI来查询Bean,只是,如果是它们在同一台机器上的时候,你使用Local接口,这样使得调用变为Local调用,从而提升性能。EJB它从出生时起,就定位为分布式组件架构,一头栽进“distributed”不容易出来了。这个可能就叫“尾大不掉”吧。
这一切的不同,只能说,它们的定位不同。一个更关注Local、一个更关注Remote。Spring仍然坚持它的哲学,从最基本的、大多数的场景考虑起,到特殊需要的时候,再想办法来解决问题。它试图找到J2EE开发和系统能力的均衡点。
可以说,Spring的做法,更加合情合理。但是,我也相信,Spring在”只是为Remote注入提供简单的支持“这一点上有点矫枉过正。我觉的,它可以做的更好,譬如通过作为J2EE标准的JNDI来封装Local、Remote查找。
目前,Spring不怎么关心Remote Object注入,对于需要Remote注入的情况,只提供简单的支持,而且还需要针对expert单独写配置信息。在这里,EJB3.0的做法,我觉的,是目前,最方便、最理智、也是最有前途的。EJB3.0通过@remote、@local就可以让EJB Server做不同的部署。
Spring导出远程对象。
AccountService
example.AccountService
1199
Spring中注入Remote是怎样做的?
rmi://HOST:1199/AccountService
example.AccountService
看了,这段代码,你就知道了。
这种方法非常的轻量级,从本质上来说,这种方法和JNDI没有任何的不同,这种方法,也需要一个NamingService,还记得RMI编程中,运行服务端的时候,首先运行rmiregistry,这个实际上就是非常简单的NamingService。看来,Rd Johnson对JNDI真是深恶痛绝啊。怎么也不愿意用JNDI。Spring这种方法,也许没有JNDI那样重量级,但是很显然它不能支持工业级分布系统,J2EE发展到今天,JNDI已经成为最核心的技术,它不是简单的Object Naming Service,它提供标准接口来定位用户、微机、网络、对象、服务器等等。它已经广泛而深入的进入J2EE技术的各个领域、成为J2EE系统的纽带。
举个很简单的例子:我需要在Spring应用中动态获取Remote Object,我该怎么做?我需要无缝使用LDAP,我该怎么做?答案是,Spring不能帮到你什么。
那么我就想,Spring为什么不使用JNDI来封装Local、Remote查找两种协议?从而,使用J2EE标准来实现无缝
public/private/protected的具体区别
1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用。
3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
扩展资料:
三种类型的继承,父类的成员均被子类继承(之前的百科关于这点的描述是错误的),只是由类实例化的对象对其继承的成员的访问权限会有所变化。三种不同方式的继承,描述的是子类实例化对象对其成员的访问权限,并非是描述子类时,子类对继承自父类的成员的访问权限。
公有继承 继承自父类的成员保持不变。
私有继承 继承自父类的成员全部变为私有成员。
保护继承 继承自父类的公有成员变为保护成员,其余不变。
参考资料:类百度百科
java 读取一个路径下的所有 xml类型的文件?
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
//import org.jdom2.Document;
import org.xml.sax.SAXException;
public class tt {
public static void main (String [] arg) {
DocumentBuilderFactory dFactory =DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = null;
try {
dBuilder = dFactory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
org.w3c.dom.Document document = null;
try {
document = dBuilder.parse("E:/workspace/XMLTest/src/tt.xml");
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Element root= document.getDocumentElement();
NodeList nList = root.getChildNodes();
System.out.println(nList.getLength()+root.getNodeName());
//for(int i=0 ; i nList.getLength() ; i++){
System.out.println(nList.item(1).getChildNodes().item(1).getTextContent()+ "hahah");
//}
NodeList nodeList =document.getElementsByTagName("StepDescription");
nodeList.item(0).getChildNodes().item(1).getAttributes().item(0).setNodeValue("ranqi");
System.out.println(nodeList.item(0).getChildNodes().item(1).getAttributes().item(0).getNodeValue()+ "7777");
DOMSource source = new DOMSource(document);
StreamResult sResult = new StreamResult(new File("E:/workspace/XMLTest/src/tt_11.xml"));
TransformerFactory tFactory =TransformerFactory.newInstance();
Transformer transformer =null;
try {
transformer =tFactory.newTransformer();
try {
transformer.transform(source, sResult);
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这还是我读E:/workspace/XMLTest/src/tt.xml这个路径下的xml文档
java:为什么我放在同一个package里的class不能互相调用呢??
分不是问题...关键是给楼主解决这个问题才是最重要的..
如果楼主有时间的话请百度HI我们....一定帮你解决这个问题..
祝楼主早日成功哈!!!!
public class register extends HttpServlet {
private mySQL database;
rivate void reg (HttpServletRequest request, //楼主这一行少了个 p
手机安装QQ,每次都是应用未安装,该怎么办?
你安装的时候,可以选择安装到C 还是E盘,,还有你的QQ版本是JAVA 还是SIS格式的 ,都有区别
下面是我从塞班复制来的。你看看
Installs存放安装文件
MusicDownloads机子自带浏览器下载音乐后,都存在这里
MyMusic音乐模式下歌存在这里
Sounds铃声存放文件夹
Videos视频存放文件夹
Private101f9cfe字典
CE:rivate1000484bMail2 短信存放文件夹
CE:rivate10003a3fimportapps 应用程序资源,rsc文件
CE:rivate10202dce 安装文件的备份,有些程序删除后在程序管理里有残余,在这删除
CE:rivate102033E6MIDlets Java程序存放文件夹,此文件夹里存放的是Java安装程序
CE:rivate1000484bMail2 短信存放文件夹
E:rivate10207114import 卡上主题存放文件夹
E:rivate10202dce
sisx程序安装存放文件
Resourceapps程序文字资源存在这里,大多是rsc文件
Resourcehelp程序自带帮助文件存放在这里
Resourceplugins好像是放插件的地方,但是目前只有rsc文件
System[102072c3]目前不明
SystemInstallRegistryJava程序安装记录文件
SystemAppsOperaOpera安装后建立
SystemDataOpera文件夹下opera.ini可调节缓存大小
C:systemApps
C:systemAppsApplnstAppinst.ini这个文件是用来记录安装软件的信息,随着软件安装的增多而增大。
C:systemAppsPhotoAlbumPhotoAlbum.ini图片浏览器的初始化文件
C:systemAppsprofileAppdbProfile.db手机的数据库文件,用来记录安装软件的信息,随着软件安装的增多而增大。
C:systemAppsSystemExplorer这个文件夹就是SeleQ软件的安装文件夹
C:systembootdata手机导入数据文件夹。文件夹中的CommonData.D00、FirstBoot.dat、HALData.dat、localeData.D 01、SIMLanguage.dat这5个文件大小固定不变的,
分别为17b、0b、16b、70b、4b。其中SIMLanguage.dat是记录SIM卡语言种类的。
C:systemData这个文件夹记录程序初始化或运行时的数据的。
C:SystemDateAHLE互联网
C:systemDatacbs这个文件夹下有两个dat文件,其中cbs0.dat的大小不变,为71b
C:SystemDatemidp2未知意义,每次开机后都有小许的增大。重命删除,开机自动会生成回
C:systemDatasaveddecks这个文件夹默认为空,作用与手机服务商的网络有关。
C:systemDatawapstore这个文件夹主要用来存储用WAP上网时的一些设定和网页缓存。
C:systemDataApplications.dat程序数据记录
C:systemDatabackgroundimage.mbm保存在系统中的墙纸图片文件
C:systemDataBookmarks.db书签数据文件,用来记录WAP地址。
C:systemDataCACerts.dat安装各种软件的证书文件诺
C:systemDataCalcsoft自带的计算器
C:systemDataCalendar手机自带的日历
C:systemDataCLOCKAPP.dat时钟设定存档文件
C:systemDataCntModel.ini电话本初始化文件
C:systemDataContacts.cdb电话本数据文件,随着电话本记录的增多而增大。
C:systemDataLogdbu.dat手机的通讯数据文件,包括来电,去电,通话时间,GPRS流量等等。
C:systemDatamedialPlayer.dat多媒体播放器RealOne播放机。
C:systemDatamms_seting.Dat彩信设置全
C:SystemDatemusic.db音乐播放器
C:systemDataNITZ.dat默认大小为1b
C:systemDataNotepad.dat记事本
C:systemDataPinboard捷径
C:systemDataSavedDecks.db
C:systemDatasmsreast.datsmssegst.dat手机的短信设定存档文件
C:systemDataTemplate.n01手机短信信模版文件
C:systemDataUnitConverter.int手机自带的单位转换器初始化文件
C:systemDataVoCoSModelData.db和媒体声音有关的数据文件
C:systemDatawapreast.datWAP设定存档文件,初始化大小为59b。
Datambook 掌上书院安装后配置文件存放文件夹,如果书打不开可以把其中的umdrcnt.lst,umdstng删掉
C:systemfavourites收藏夹,初始化为空。
C:systemfavouritesxx.lnk快捷键增加的文件位置及名称
C:systeminstall文件夹中还会有你安装的软件的sis记录文件
C:systeminstallinstall.log在手机中安装软件的日志文件。
C:Systemlibs软件连接文件和库文件,DLL文件诺基亚
C:systemMail短信息存储文件夹。
C:SystemMIDIetsJAVA程序文件
C:systemMtm信息设置目录
C:Systemrecogs存放关联方式文件的目录
C:systemSchedulesSchedules.dat待办事宜数据文件。
C:systemShareddata手机功能设定文件,包括手机设备设置、通话设置、连接设置、时间设置、网络设置等。更改Tools-Settings里面的设置后,这个文件夹里的文件就会发生变化。
C:SystemTemp存储临时文件的文件夹,初始化为空。
C:SystemSystem.ini系统初始化配置文件。
C:SytstemBackup.xml备份数据
清除垃圾
Images和Videos文件夹,每个子文件夹里都有一个文件名为_PAIbTN的隐藏的文件夹,会占用一些空间可以删去。
cache文件夹是缓存目录,建议大家定时清空。
所有temp文件夹是临时目录建议清空。
打开C:/system/dmgr,里面有两个文件夹了,各有一个contents的文件夹,里面的文件上网下载的一些文本文件,可以安全删除。
c盘data目录下的installs是软件的安装目录,可以清空。
定期删除C:systemdatacbscbtopicsmsgs.dat
重点内容:
◇E:102033E6MIDlets
Java程序存放文件夹,此文件夹里存放的是Java安装程序,内有java程度原文件,可以提取出来再次使用,手机安装的JAVA程序全在这了。
◇E:10207114import
主题存放文件,这个文件夹里面全是手机安装的主题,内附有主题的图片。方便大家删掉不想要但在程序管理没有显示的主题。
◇E:10202dce
SISX程序安装存放文件,格机后显示未安装的情况也可以在这里面删。因为此文件夹为隐藏,要想打开:用电脑取消隐藏属性,在用自带的管理器搜索就可以找到。
java ftps 文件增删改查,用apache的commons-netjar包,求高手给个例子,注意是ftps哦,不是ftp
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
class JavaTest {
public static void main(String[] args) {
ByteArrayOutputStream Log = new ByteArrayOutputStream();
PrintStream printLog = new PrintStream(Log);
PrintWriter LogPrinter = new PrintWriter(Log);
try {
org.apache.commons.net. FTPs = new org.apache.commons.net.;
FTPs.addProtocolCommandListener(new org.apache.commons.net.PrintCommandListener(LogPrinter));
FTPs.setDefaultTimeout(10000);
FTPs.connect("ftpstest.forus.com"); //
// 100MB, bandwidth limited, no
// MkDir, supports FTP Active,
// and FTPS Active Passive.
// Please delete files
FTPs.setSoTimeout(900000); // 15 minutes, a massive file transfer.
FTPs.getReplyCode();
FTPs.execPBSZ(0); // RFC2228 requires that the PBSZ subcommand be
// issued prior to the PROT subcommand. However,
// TLS/SSL handles blocking of data, so '0' is
// the only value accepted.
FTPs.execPROT("P"); // P(rivate) data channel, which needs certs if
// "Active". E and S: '536 Requested PROT level
// not supported by mechanism.'. C is default,
// but has clear text data channel
// -
FTPs.login("ftp_testing", "ftp_testing");
FTPs.changeWorkingDirectory("/");
java.io.FileInputStream fileStream = new java.io.FileInputStream("JavaTest.java");
FTPs.setDataTimeout(5000);
FTPs.enterLocalPassiveMode(); // Active is the default, which very
// few clients can suppart in SSL
// (firewalls can't detect "PORT"
// command, and thus cant open/map
// local port). Active will also
// require keys/certs.
printLog.println("(call store file...)");
FTPs.storeFile("JavaTest.java", fileStream);
fileStream.close();
FTPs.disconnect();
System.out.println("");
System.out.println("FTP COMMAND LOG:");
System.out.println(Log.toString());
} catch (Exception e) {
}
}
}
参见:
javarivate的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、javarivate的信息别忘了在本站进行查找喔。