Java -- IO -- 目录
操作文件的类 -- -- File
File类的基本介绍
使用File类操作文件
范例 -- -- 列出指定目录的全部内容
RandomAccessFile类
使用RandomAccessFile类写入数据
使用RandomAccessFile类读取数据
字节流与字符流的基本操作
-- -- -- -- -- -- -- -- 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据时要使用输入流读取数据,程序需要保存数据时使用输出流。
-- -- -- -- -- -- -- -- 在java.io包中流的操作主要有字节流、字符流两大类。
-- -- -- -- -- -- -- -- -- -- -- 在字节流中输出数据主要使用OutputStream类完成,输入使用的是InputStream类。
-- -- -- -- -- -- -- -- -- -- -- 在字符流中输出数据主要使用Writer类完成,输入主要是使用Reader类完成。
字节流
-- -- -- 字节流主要操作byte类型数据,以byte数组为准。
-- -- -- -- -- Class : OutputStream
public abstract class OutputStream implements Closeable, Flushable
-- -- -- -- -- -- Class : FileOutputStream
public class FileOutputStream extends OutputStream
-- -- -- -- -- -- -- -- -- -- --
⊙ public void close() throws IOException : 关闭此文件输出流并释放与此流有关的所有系统资源。
⊙ public void flush() throws IOException : 刷新此输出流并强制写出所有缓冲的输出字节。
⊙ public void write(int b) throws IOException : 将指定的字节写入此输出流。
⊙ public void write(byte b[]) throws IOException : 将 b.length
个字节从指定的 byte 数组写入此输出流。
⊙ public void write(byte b[], int off, int len) throws IOException : 将指定 byte 数组中从偏移量 off
开始的 len
个字节写入此输出流。
-- -- -- -- -- Class : InputStream
public abstract class InputStream implements Closeable
-- -- -- -- -- -- Class : FileInputStream
public class FileInputStream extends InputStream
-- -- -- -- -- -- -- -- -- -- --
⊙ public native int available() throws IOException : 返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。
⊙ public void close() throws IOException : 关闭此输入流并释放与该流关联的所有系统资源。
⊙ public int read() throws IOException : 从输入流中读取数据的下一个字节。
⊙ public int read(byte b[]) throws IOException : 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b
中。
⊙ public int read(byte b[], int off, int len) throws IOException : 将输入流中最多 len
个数据字节读入 byte 数组。
字符流
-- -- -- 在程序中一个字符等于两个字节。Reader和Writer操作字符流。
-- -- -- -- -- Class : Writer
public abstract class Writer implements Appendable, Closeable, Flushable
-- -- -- -- -- -- Class : OutputStreamWriter
public class OutputStreamWriter extends Writer
-- -- -- -- -- -- -- Class : FileWriter
public class FileWriter extends OutputStreamWriter
-- -- -- -- -- -- -- -- -- -- --
⊙ abstract public void close() throws IOException : 关闭此流,但要先刷新它。
⊙ public void write(int c) throws IOException : 写入单个字符。
⊙ public void write(char cbuf[]) throws IOException : 写入字符数组。
⊙ abstract public void write(char cbuf[], int off, int len) throws IOException : 写入字符数组的某一部分。
⊙ public void write(String str) throws IOException : 写入字符串。
⊙ public void write(String str, int off, int len) throws IOException : 写入字符串的某一部分。
⊙ abstract public void flush() throws IOException : 刷新该流的缓冲。
-- -- -- -- -- Class : Reader
public abstract class Reader implements Readable, Closeable
-- -- -- -- -- -- -- Class : InputStreamReader
public class InputStreamReader extends Reader
-- -- -- -- -- -- -- -- -- Class : FileReader
public class FileReader extends InputStreamReader
-- -- -- -- -- -- -- -- -- -- --
⊙ abstract public void close() throws IOException : 关闭该流并释放与之关联的所有资源。
⊙ public int read() throws IOException : 读取单个字符。
⊙ public int read(char cbuf[]) throws IOException : 将字符读入数组。
⊙ abstract public int read(char cbuf[], int off, int len) throws IOException : 将字符读入数组的某一部分。
字节流与字符流的区别
-- -- -- -- -- -- -- -- 字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的。
-- -- -- -- -- -- -- -- 字符流在操作时使用了缓冲区,通过缓冲区在操作文件。
范例 -- -- 文件复制
转换流 -- -- OutputStreamWriter类与InputStreamReader类
-- -- -- OutputStreamWriter : 是Writer的子类,将输出的字符流变为字节流。
public OutputStreamWriter(OutputStream out)
-- -- -- InputStreamReader : 是Reader的子类,将输入的字节流变为字符流。
public InputStreamReader(InputStream in)
-- -- 不论是字节流还是字符流,实际上最终都是以字节的形式操作输入/输出流的。
内存操作流
-- -- -- ByteArrayOutputStream 主要是将内存中的数据输出。
-- -- -- ByteArrayInputStream 主要完成将内容写入到内存中。
-- -- -- -- -- -- Class : ByteArrayInputStream
public class ByteArrayInputStream extends InputStream
-- -- -- -- -- -- -- -- Construction :
public ByteArrayInputStream(byte buf[])
⊙ public void close() throws IOException : 关闭 ByteArrayInputStream 无效。
⊙ public synchronized int read() : 从此输入流中读取下一个数据字节。
⊙ public synchronized int read(byte b[], int off, int len) : 将最多 len
个数据字节从此输入流读入 byte 数组。
-- -- -- -- -- -- Class : ByteArrayOutputStream
public class ByteArrayOutputStream extends OutputStream
-- -- -- -- -- -- -- -- Construction :
public ByteArrayOutputStream()
⊙ public synchronized void write(int b) : 将指定的字节写入此 byte 数组输出流。
⊙ public synchronized void write(byte b[], int off, int len) : 将指定 byte 数组中从偏移量 off
开始的 len
个字节写入此 byte 数组输出流。
⊙ public synchronized String toString() : 使用平台默认的字符集,通过解码字节将缓冲区内容转换为字符串。
⊙ public void close() throws IOException : 关闭 ByteArrayOutputStream 无效。
-- -- 内存操作流一般在生成一些临时信息时才会使用。
管道流
管道流的主要作用是可以进行两个线程间的通信。分为管道输出流(PipedOutputStream)和管道输入流(PipedInputStream)。
如果要进行管道输出,则必须把输出流连在输入流上。
-- -- -- Class : PipedOutputStream
public class PipedOutputStream extends OutputStream
-- -- -- -- -- -- Function : connect(PipedInputStream)
public synchronized void connect(PipedInputStream snk) throws IOException
-- Class : Send
package object.pipedStream; import java.io.IOException;
import java.io.PipedOutputStream; //实现Runnable接口
public class Send implements Runnable { // 管道输出流
private PipedOutputStream pos = null; public Send() {
// 实例化输出流
this.pos = new PipedOutputStream();
} @Override
public void run() {
String context = "为何在这里 疲倦象半醉\n曾在这空间 跟你相拥抱\n只有唏嘘的追忆\n无言落寞地落泪\n谁在这晚里放纵与她温馨\n无尽空虚\n似把刀锋静静穿过心窝";
try {
// 输出信息
this.pos.write(context.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
try {
// 关闭输出流
this.pos.close();
} catch (IOException e) {
e.printStackTrace();
}
} // 通过线程类得到输出流
public PipedOutputStream getPos() {
return this.pos;
} }
-- Class : Receive
package object.pipedStream; import java.io.IOException;
import java.io.PipedInputStream; //实现Runnable接口
public class Receive implements Runnable { private PipedInputStream pis = null; public Receive() {
// 实例化输入流
this.pis = new PipedInputStream();
} @Override
public void run() {
byte b[] = new byte[1024];
int len = 0;
try {
// 接收数据
len = this.pis.read(b);
} catch (IOException e) {
e.printStackTrace();
}
try {
this.pis.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("接收到的内容为:\n" + new String(b));
} public PipedInputStream getPis() {
return pis;
} }
-- Class : PipedStreamDemo
package object.pipedStream; import java.io.IOException; public class PipedStreamDemo { public static void main(String[] args) throws IOException, InterruptedException {
Send s = new Send();
Receive r = new Receive();
// 连接管道
s.getPos().connect(r.getPis());
// r.getPis().connect(s.getPos());
// 启动线程
new Thread(r).start();
// 启动线程
new Thread(s).start();
}
}
-- Console :
接收到的内容为:
为何在这里 疲倦象半醉
曾在这空间 跟你相拥抱
只有唏嘘的追忆
无言落寞地落泪
谁在这晚里放纵与她温馨
无尽空虚
似把刀锋静静穿过心窝
-- 以上程序定义了两个线程对象,在发送的线程类中定义了管道输出流,在接收的线程类中定义了管道输入流,在操作时只需要使用PipedOutputStream类中提供的connect()方法就可以将两个线程管道连接在一起,线程启动后会自动进行管道的输入、输出操作。
打印流
-- -- -- 打印流主要包含字节打印流(PrintStream)和字符打印流(PrintWriter)
打印流的基本操作
使用打印流进行格式化
System类对IO的支持
System.out
System.err
System.in
输入/输出重定向
BufferedReader类
键盘输入数据的标准格式
相关操作实例
Scanner类
Scanner类简介
使用Scanner类输入数据
数据操作流
DataOutputStream
DataInputStream
-- -- DataOutputStream :
public class DataOutputStream extends FilterOutputStream implements DataOutput
-- -- FilterOutputStream :
public class FilterOutputStream extends OutputStream
⊙ public DataOutputStream(OutputStream out) :
⊙ public synchronized void write(int b) throws IOException :
⊙ public synchronized void write(byte b[], int off, int len) throws IOException :
⊙ public final void writeByte(int v) throws IOException :
⊙ public final void writeShort(int v) :
⊙ public final void writeInt(int v) throws IOException :
⊙ public final void writeLong(long v) throws IOException :
⊙ public final void writeFloat(float v) throws IOException :
⊙ public final void writeDouble(double v) throws IOException :
⊙ public final void writeBoolean(boolean v) throws IOException :
⊙ public final void writeChar(int v) throws IOException :
⊙ public final void writeChars(String s) throws IOException :
⊙ public final void writeBytes(String s) throws IOException :
⊙ public void flush() throws IOException :
-- -- DataInputStream:
public class DataInputStream extends FilterInputStream implements DataInput
-- -- FilterInputStream:
public class FilterInputStream extends InputStream
⊙ public DataInputStream(InputStream in) :
⊙ public final int read(byte b[]) throws IOException :
⊙ public final int read(byte b[], int off, int len) throws IOException :
⊙ public final byte readByte() throws IOException :
⊙ public final short readShort() throws IOException :
⊙ public final int readInt() throws IOException :
⊙ public final long readLong() throws IOException :
⊙ public final float readFloat() throws IOException :
⊙ public final double readDouble() throws IOException :
⊙ public final boolean readBoolean() throws IOException :
⊙ public final char readChar() throws IOException :
⊙ public final String readLine() throws IOException :
合并流
-- -- SequenceInputStream :
public class SequenceInputStream extends InputStream
⊙ public SequenceInputStream(InputStream s1, InputStream s2) :
⊙ public int available() throws IOException :
⊙ public int read() throws IOException :
⊙ public int read(byte b[], int off, int len) throws IOException :
⊙ public void close() throws IOException :
压缩流
ZIP压缩输入/输出流简介
-- -- java.util.zip
-- -- ZipFile、ZipOutputStream、ZipInputStream、ZipEntry
-- -- java.util.jar
-- -- JarOutputStream、JarInputStream、JARFile、JAREntry
-- -- java.util.zip
-- -- GZIPOutputStream、GZIPInputStream
-- -- -- -- 在每一个压缩文件中都会存在多个子文件,那么每一个子文件在Java中就使用ZipEntry表示。
-- -- -- -- -- -- -- --
⊙ public ZipEntry(String name) : 使用指定名称创建新的 ZIP 条目。
⊙ public boolean isDirectory() : 如果为目录条目,则返回 true。
ZipOutputStream类
-- -- FilterOutputStream
publicclass FilterOutputStream extends OutputStream
-- -- DeflaterOutputStream
public class DeflaterOutputStream extends FilterOutputStream
-- -- ZipOutputStream
public class ZipOutputStream extends DeflaterOutputStream implements ZipConstants
⊙ public ZipOutputStream(OutputStream out) : 创建新的 ZIP 输出流。
⊙ public void putNextEntry(ZipEntry e) throws IOException : 开始写入新的 ZIP 文件条目并将流定位到条目数据的开始处。
⊙ public void setComment(String comment) : 设置 ZIP 文件注释。
package object.outputStream.zipOutputStream; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream; public class ZipOutputStreamDemo2 { public static void main(String[] args) throws IOException {
ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream("F:/limezip.zip"));
zipDir("F:/limes",zipOut);
zipOut.close();
} private static void zipDir(String inFile, ZipOutputStream zipOut) throws IOException {
File file = new File(inFile);
if(file.isDirectory()){
File[] listFiles = file.listFiles();
for(File fl : listFiles){
zipDir(fl.getPath(), zipOut);
}
}else{
zipOut.putNextEntry(new ZipEntry(inFile));
InputStream in = new FileInputStream(inFile);
byte[] temp = new byte[2048 * 2];
while(in.read(temp) != -1){
zipOut.write(temp);
}
in.close();
}
}
}
ZipFile类
-- -- 每一个压缩文件都可以使用ZipFile表示,还可以使用ZipFile根据压缩后的文件名找到每一个压缩文件中的ZipEntry并将其进行解压缩操作。
⊙ public ZipFile(String name) throws IOException :
⊙ public ZipFile(File file, int mode) throws IOException :
⊙ public ZipFile(File file) throws ZipException, IOException :
⊙ public ZipFile(File file, int mode, Charset charset) :
⊙ public ZipFile(String name, Charset charset) throws IOException :
⊙ public ZipFile(File file, Charset charset) throws IOException :
⊙ public ZipEntry getEntry(String name) :
⊙ public InputStream getInputStream(ZipEntry entry) throws IOException :
⊙ public String getName() :
ZipInputStream类
-- --
⊙ public ZipInputStream(InputStream in) :
⊙ public ZipEntry getNextEntry() throws IOException :
回退流
-- -- PushbackInputStream
-- -- PushbackReader
-- -- PushbackInputStream
⊙ public PushbackInputStream(InputStream in) :
⊙ public PushbackInputStream(InputStream in, int size) :
⊙ public void unread(int b) throws IOException :
⊙ public void unread(byte[] b) throws IOException :
⊙ public void unread(byte[] b, int off, int len) throws IOException :
package object.outputStream.zipOutputStream; import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.PushbackInputStream; public class PushBackInputStreamDemo { public static void main(String[] args) throws IOException {
String str = "lime.oracle.Yu";
PushbackInputStream pushbackInputStream = new PushbackInputStream(new ByteArrayInputStream(str.getBytes()));
System.out.println(str);
System.out.println("------------");
int temp = 0;
while((temp = pushbackInputStream.read()) != -1){
if(temp == (int)'.'){
pushbackInputStream.unread((int)'/');
}else{
System.out.print((char)temp);
}
}
}
}
package object.outputStream.zipOutputStream; import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.PushbackInputStream; public class PushBackInputStreamDemo { public static void main(String[] args) throws IOException {
String str = "lime.oracle.Yu";
PushbackInputStream pushbackInputStream = new PushbackInputStream(new ByteArrayInputStream(str.getBytes()),2);
System.out.println(str);
System.out.println("------------");
int temp = 0;
while((temp = pushbackInputStream.read()) != -1){
if(temp == (int)'.'){
pushbackInputStream.unread((int)'/');
pushbackInputStream.unread((int)'!');
}else{
System.out.print((char)temp);
}
}
}
}
字符编码
Java 常见编码简介
⊙ ISO8859-1 : 属于单字节编码,最多只能表示0~255的字符范围,主要在英文上应用。
⊙ GBK/GB2312 : 中文的国标编码,专门用来表示汉字,是双字节编码。GBK可以标识简体中文和繁体中文,而GB2312只能标识简体中文,GBK兼容GB2312.
⊙ unicode: Java中使用此编码方式,是最标准的一种编码,使用十六进制标识编码。但此编码不兼容ISO8859-1编码。
⊙ UTF : 由于unicode不支持ISO8859-1编码,而且容易占用更多的空间,而且对于英文字母也需要使用两个字节编码,这样使用unicode不便于传输和存储,因此产生了UTF编码。UTF编码兼容了ISO8859-1编码,同时也可以用来标识所有的语言字符,不过UTF编码是不定长编码,每一个字符的长度为1~6个字节不等。
得到本机的编码显示
System.out.println("系统默认编码 : " + System.getProperty("file.encoding"));
系统默认编码 : UTF-8
乱码产生
对象序列化
基本概念与Serializable接口
-- 对象序列化就是把一个对象变为二进制的数据流的一种方法。通过对象序列化可以方便地实现对象的传输或存储。
-- -- Serializable : 标识接口,标识其实现类具有被序列化的能力。
public interface Serializable {
}
-- -- -- 使用对象输出流输出序列化对象的步骤有时也称为序列化,而使用对象输入流读取对想的过程有时也称为反序列化。
-- -- -- -- 提示:
-- -- -- -- 在对象进行序列化或反序列化操作时,要考虑JDK版本的问题。如果序列化的JDK版本和反序列化的JDK版本不同意则就有可能造成异常,所以在序列化操作中引入了一个serialVersionUID的常量,可以通过此常量来验证版本的一致性。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现反序列化版本不一致的异常。
-- -- -- -- 当实现java.io.Serializable接口的实体(类)没有显示地定义一个名为serialVersionUID、类型为long的变量时,Java序列化机制在编译时会自动生成一个此版本的serialVersionUID。当然,如果不希望通过编译来自动生成,也可以直接显示地定义一个名为serialVersionUID、类型为long的变量,只要不修改这个变量值的序列化实体,都可以相互进行串行化和反串行化。
对象输出流ObjectOutputStream
-- -- ObjectOutputStream : 只有属性被序列化
⊙ public ObjectOutputStream(OutputStream out) throws IOException :
⊙ public final void writeObject(Object obj) throws IOException :
对象输入流ObjectInputStream
-- -- ObjectOutputStream : 只有属性被序列化
⊙ public ObjectInputStream(InputStream in) throws IOException :
⊙ public final Object readObject() throws IOException, ClassNotFoundException:
Externalizable接口
-- -- Externalizable : 指定序列化的内容
public interface Externalizable extends java.io.Serializable
⊙ public void writeExternal(ObjectOutput out) throws IOException : 对象实现 readExternal 方法来恢复其内容,它通过调用 DataInput 的方法来恢复其基础类型,调用 readObject 来恢复对象、字符串和数组。
⊙ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException : 该对象可实现 writeExternal 方法来保存其内容,它可以通过调用 DataOutput 的方法来保存其基本值,或调用 ObjectOutput 的 writeObject 方法来保存对象、字符串和数组。
-- -- OjbectOutput :
public interface ObjectOutput extends DataOutput, AutoCloseable
// 覆写此方法,根据需要可以保存属性或具体内容,序列化时使用
@Override
public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(this.name);
out.writeInt(this.age);
}
-- -- OjbectInput :
public interface ObjectInput extends DataInput, AutoCloseable
// 覆写此方法,根据需要读取内容,反序列化时使用
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
this.name = (String)in.readObject();
this.age = in.readInt();
}
-- -- 如果一个类要使用Externalizable实现序列化时,在此类中必须存在一个无参构造方法,因为在反序列化时会默认调用无参构造实例化对象,如果没有此无参构造,则运行时会将出现异常,这一点的实现机制与Serializable接口是不同的。
transient关键字
-- -- transient:对象中被transient修饰的属性不会被序列化。
private transient String name;
private int age;
序列化一组对象
实例操作 -- -- 单人信息管理程序
Java 新IO
Java 新IO简介
缓冲区与Buffer
Buffer的基本操作
深入缓冲区操作
创建子缓冲区
创建只读缓冲区
创建直接缓冲区
通道
FileChannel
内存映射
文件锁:FileLock
字符集:Charset
Selector
啦啦啦
啦啦啦
啦啦啦
啦啦啦
Java -- IO -- 目录的更多相关文章
- 系统学习 Java IO ---- 目录,概览
Java IO 类的系统教程,原创.主要参考自英文教程 Java IO Tutorial 和 Java Doc. http://tutorials.jenkov.com/java-io/index.h ...
- 图解 Java IO : 一、File源码
Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter ...
- 系统学习 Java IO (一)----输入流和输出流 InputStream/OutputStream
目录:系统学习 Java IO ---- 目录,概览 InputStream 是Java IO API中所有输入流的父类. 表示有序的字节流,换句话说,可以将 InputStream 中的数据作为有序 ...
- java io系列01之 "目录"
java io 系列目录如下: 01. java io系列01之 "目录" 02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括 ...
- Java System.getProperty("java.io.tmpdir") 获取系统临时目录
System.getProperty("java.io.tmpdir") 是获取操作系统的缓存临时目录 在windows7中的目录是: C:\Users\登录用户~1\AppDat ...
- Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录
Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录 这里先简单的贴下常用的方法: File.separator //当前系统文件分隔符 File.pathSeparator // ...
- java.io.IOException: java.io.FileNotFoundException: /tmp/tomcat.2457258178644046891.8080/work/Tomcat/localhost/innovate-admin/C:/up/154884318438733213952/sys-error.log (没有那个文件或目录)
环境: Ubuntu18 vue+elementUI 实现文件的上传 报错信息: MultipartFile.transferTo(dest) 报 FileNotFoundException java ...
- Java IO流操作(III)——File类&案例一:输出制定目录下所有java文件名(包含子目录)&案例二:删除指定的目录(包含子目录)
1. File常用的构造 File file = new File("字符串路径"); File f = new File("D:\\a\\b.txt"); F ...
- Tomcat临时目录及java.io.tmpdir对应的目录
最近客户现场的技术支持接连反馈了一个问题:导入数据的时候,上传的excel会在服务器上生成一个临时文件,而这个临时文件都在 tomcat 的安装目录下,如果上传次数比较多的话,就会导致tomcat安 ...
随机推荐
- ECS Linux服务器xfs磁盘扩容
ECS Linux服务器xfs磁盘扩 ECS Linux服务器xfs磁盘使用阿里云官方提供的磁盘扩容方法扩容会有报错: [root@iZ28u04wmy2Z ~]# e2fsck /dev/xvdb1 ...
- 简介vsftpd及搭建配置 关闭selinux 不能创建文件
简介vsftpd及搭建配置一.简介 FTP(文件传输协议)全称是:Very Secure FTP Server. Vsftpd是linux类操作系统上运行的ftp服务器软件. vsftp提供三种登陆方 ...
- 【javascript】js 检验密码强度
最近一直在做通行证项目,里面的注册模块中输入密码需要显示密码强度(低中高).今天就把做的效果给大家分享下,代码没有网上搜索的那么复杂,能够满足一般的需求. html 代码如下: <!DOCTYP ...
- java对mongoDB的基本操作 ,游标使用
package com.mongodb.text; import java.net.UnknownHostException; import java.util.List; import org.bs ...
- JS Window对象操作思维导图
- 想做web开发 就学JavaScript
有一天我被问到,为了快速地在 web 开发工作上增加优势,应该学习什么语言.我的思绪回到了大学,那时候我用 Pascal.Fortran.C和汇编语言,不过那个时候有不同的目标. 鉴于当前的状况和趋势 ...
- 解决在IE浏览器中JQuery.resize()执行多次的方法(转)
最近在做前台效果的时候用到了JQuery提供的resize()事件.resize 这个事件是监听浏览器窗口的放大与缩小,也就是说浏览器窗口大小的变化. 我在W3CSCHOOL上面查阅的时候,提供了一个 ...
- [JS] js数字位数太大导致参数精度丢失问题
http://www.cnblogs.com/littlestart/p/6023976.html
- C++头文件的工作原理
一.C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件.其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码:而.h文件则被称作C++头文件,里面放的也是C+ ...
- Linux 安装 Oracle 11g R2
一.安装环境 Linux服务器:Centos 6.4 64位 Oracle服务器:Oracle11gR2 64位 二.系统要求 Linux安装Oracle系统要求 系统要求 说明 内存 必须高于1G的 ...