|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点条记121、Stream依据功效可分为数据侦听器流(dataSinkStream,侦听器:内存、管道、文件)和历程流
(ProcessingStream)
122、在谈Java的流类之前,先谈怎样天生一个File对象,它时一个和流有关的类。File对象可用来天生
和文件(及其地点的路径)或目次布局相干的对象,因为分歧的体系大概会有分歧的目次了局暗示法,使
用File可完成和体系有关的目标(利用笼统的路径暗示法)。
123、File对象天生办法:
File(Stringpath):将一个代表路径的字符串转换为笼统的路径暗示法
File(Stringparent,Stringchild):parent代表目次,child代表文件,child不成为空
File(Fileparent,Stringchild):parent代表一个File对象的目次,child代表文件,child不
可为空
124、File供应一些办法来测试或反省一个File对象:
booleanexists():若该文件或目次存在,则前往true
booleanisDirectory():若为目次则前往true
File[]listFiles():失掉该对象所代表的目次下的File对象数组,若不为该目次,则前往null
String[]list():同上,但前往一个String数组
longlength():失掉和该对象相干的文件的巨细,若不存在,则前往值为0L
StringtoString():失掉笼统路径暗示法
StringgetParent():失掉笼统路径暗示法的目次部分(不包括最初一个部分)
StringgetName():失掉笼统路径暗示法的最初一个部分
125、改动一个File对象的办法:
booleanrenameTo(FilenewName):将今朝File对象所代表的路径名改成newName所代表的路径名
。若变动乐成,则前往值为true
booleanmkdir():天生一个新的目次。进乐成,则前往值为true
booleanmkdirs():天生一个新的目次,包括不存在的子目次。若乐成,前往值为true
booleandelete():删除今朝File对象所代表的文件或目次,如果目次,则需为空的。若乐成,
前往true
126、没有参数的listFiles()会列出一切的文件名。利用File[]listFiles(FilenameFilterfilter)过
滤某些特别的扩大名或包括某些字符的文件名。FilenameFilter是一个接口,必需天生一个完成它的类来
卖力过滤文件名,该类需代替FilenameFilter唯一的办法accept()。booleanaccept(Filedir,String
name),若前往为true则会将今朝反省的文件包括在listFiles()的前往数组内。
127、字撙节的机关函数:
FileInputStream(Stringname):翻开文件name用以读取数据
FileInputStream(Filefile):翻开和File对象file相干联的文件,用以读取数据
FileOutputStream(Stringname):翻开文件name用以写进数据
FileOutputStream(Filefile):翻开和File对象file相干联的文件,用以写进数据
FileOutputStream(Stringname,booleanappend):翻开文件name用以写进数据,若append为
true,则写进的数据会加到原本的文件后。
128、字节数组(bytearray)的机关函数:
ByteArrayInputStream(byte[]buffer):天生一个字节数组的输出流,并指定一个字节数组
buffer为此输出流的流缓冲区。
ByteArrayOutputStream():天生一个字节数组的输入流,其缓冲区的默许初始巨细为32字节,若
有必要,缓冲区的巨细会随之增添
ByteArrayOutputStream(intsize):同上,但分派size字节的初始巨细给缓冲区。
129、一些ByteArrayOutStream经常使用的办法:
intsize():前往此流缓冲区的巨细
byte[]toByteArray():天生一个新的字节数组,并将流的内容复制到此本人数组。
StringtoString():将流的内容转换为String对象。
130、文件的兼并:SequenceInputStream
SequenceInputStream(InputStreamhead,InputStreamtail):天生一个新的输出流,先读进
head,后是tail
SequenceInputStream(Enumerationenum):将enum内的流依据序兼并韦一个新的输出流,enum内
必需是InputStream对象。
131、Vector的功效就像一个数组,但它能依据必要来改动巨细。
132、管道(pipe)供应一种线程间通讯的办法,可因为IPC(Inter-ProcessCommunication,历程间通
信)或是ITC(Inter-ThreadCommunication,线程间通讯),但它没法实行分歧主机之间的通讯。
133、一个输出管道是用来吸收一个输入管道所写出的数据,因而,一个线程会卖力送出
(PipedOutputStream对象)数据,而另外一个线程需卖力吸收(PipedInputStream对象)这些数据。
134、管道的数据流(dataflow)是单向的,必要天生另外一组输出和输入管道来卖力另外一个偏向的数据传
送。
135、假如要将管道输入流的数据送到管道输出流,可以使用
PipedOutputStream(PipedInputStreampipeIn)或
connect(PipedInputStreampipeIn)
140、字符流的类:1),BufferedReader是一种过滤器(filter)(extendsFilterReader)。过滤器用
来将流的数据加以处置再输入。机关函数为:
BufferedReader(Readerin):天生一个缓冲的字符输出流,in为一个读取器
BufferedReader(Readerin,intsize):天生一个缓冲的字符输出流,并指定缓冲区的巨细为
size
经常使用的办法为:
StringreadLine():读进一行的笔墨(以
或开头),前往的String对象其实不包括
或,若
已达流的末了则前往null
当利用缓冲流的read()或readLine()读取数据时,先会实验从缓冲区读取,若缓冲区中并没无数
据,则会尽量的将数据读进缓冲区中,以留待后续的读取。
141、2),LineNumberReader也是一种过滤器,而它也是一种缓冲流(extendsBufferedReader),可用
来纪录读进的行数,这里所谓的一行时以
或开头。经常使用办法:
intgetLineNumber():失掉今朝的行数。
142、3),PrinterWriter也是一种过滤器(extendesFilterWriter),可用来将输入导进某种设备。
143、I/O流的一个特性是它们能经由流链接的体例分离在一同,每一个流类会实行特别的事情再将了局传到
下一个链接,可以使用过滤器将流链接在一同。
BufferedReaderinBuffer=newBufferedReader(newFileReader(inFile));
利用流链接时,只必要封闭最外层的链接流,其他链接的流会主动封闭。可使用的链接是最初一个流(
inBuffer),此时,我们并没有法间接利用FileReader流。假如写成:
FileReaderfileIn=newFileReader(inFile);
BufferedReaderinBuffer=newBufferedReader(fileIn);
此时,fileIn仍存在,这大概会因写程序的忽略而形成同时有两个流链接导统一个来历(inFile),这往
往会有潜伏的伤害。
144、随机存取:RandomAccessFile,机关函数
RandomAccessFile(Filefile,Stringmode):个中mode是用来指定存取的形式,可为r,w或rw
RandomAccessFile(Stringname,Stringmode):name为和体系相干的文件名字
经常使用办法:
读取:booleanreadBoolean();bytereadByte();charreadChar();doublereadDouble
();floatreadFloat();intreadInt();longreadLong();shortreadShort();StringreadLine()
写进:voidwriteByte(Bytev);voidwriteByte(Strings);voidwriteChar(charv);void
writeChars(Strings);voidwriteDouble(doublev);voidwriteFloat(floatv);voidwriteInt(int
v);voidwriteLong(longv);voidwriteShort(shortv)
与今朝文件地位有关的办法:
voidseek(longpos):将文件指针移到pos(不成为负)的地位这是相对文件初始地位的值(
初始值为0)
longgetFilePointer():失掉今朝文件指针的地位。
longlength():失掉文件的长度
145、文件紧缩及解紧缩办法:ZipInputStream(extendsInflaterInputStream)和ZipOutputStream
(extendsDeflaterOutputStream)
146、将文件写进ZIP文件的步骤:
1)天生和所要天生的ZIP文件相干联的ZipOutputStream对象
2)一个ZIP文件常常不但含有一个紧缩文件,我们将每一个要到场的文件称为一个ZIP出口,我们
利用ZipEntry(StringfileName)来天生这些ZipEntry对象。
3)利用putNextEntry(ZipEntryentry)将此ZIP出口到场ZIP文件
4)将文件内容写进此ZIP文件
5)利用closeEntry()停止今朝的ZIP出口,持续下一个ZIP出口
147、将紧缩文件从ZIP文件读出的步骤:
1)天生和所要读进的ZIP文件相干联的ZipInputStream对象
2)使用getNextEntry()失掉下一个ZIP出口
148、我们将对象存取自一个流称为序列化(serialization),为了完成对象的序列化(将一个对象写导
流称为序列化(serializing),而从一个流将对象读出称为反序列化(deserializing))。
149、存取的对象需满意以下前提:
类需为public
类需完成Serializable接口
如有数据不是可序列化的或不必要写出,则需将其声明为transient
150、java.io供应ObjectInputStream和ObjectOutputStream来存取对象,因为它们和DataInputStream及
DataOutputStream有配合的接口,因而它们也可以使用不异的办法来读取或写进数据。另有其他的办法:
voidwriteObject(Objectobj):用于ObjectOutputStream,将对象写进流
ObjectreadObject():用于ObjectInputStream,将对象由流读出。
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。 |
|