Java进阶2

文件

1.Java把文件和目录都当做是文件。文件类是File类。

2.目录分割符的写法:

  1)c:\\haha\\hehe\\a.txt

  2)c:/haha/hehe/a.txt

  3)"c:"+File.separator+"haha"+File.separator+"a.txt"   //推荐这种写法

3.File常用的基本方法

  createNewFile   创建文件,不是目录

  mkdir    创建单层目录,必须要求父目录存在   

  mkdirs   创建多层目录。

  exists: 是否存在

  isDirectory() :是否是目录

  isFile()  :是否是文件

  list();  //文件名数组

  listFile();  //文件数组

    ---------------------------------

    过滤器 

    文件名过滤

    文件过滤器  

  -----------------------------------  

  c:\java_lesson\file\test.txt

  c:\java_lesson\file\   目录

  test.txt               文件     

 ------------------------------------------------------------------

 File类

  文件和目录统称为文件。

 1.常用的构造方法。

   new File(String file);

   c:\\test

   c:/test

   c:File.sparator

   new File(File parent,String name);

   new File(String parent,String name);

   exist();

   isFile();

   isDirectory();

   createNewFile();

   mkdir(); //要求父目录必须存在。

   mkdirs(); //创建多层目录。

   length(); //单位:字节。

   list();  //文件名字的集合    FileFilter  FilenameFilter

   listFile(); //文件的集合

   delete

   deleteOnExit

   ...

   

 文件读写

    掌握JavaIO流。

    输入流/输出流

   InputStream/OutputStream  : 按照字节读取文件。 字节流是万能的。   

    字节流/字符流

   Reader/Writer :按照字符去读取文件(每读两字节) --》和系统中字符编码对照,看看有没有响应字符编码。

                                        假设去拿字符流去读一个字节文件。 -1

   千万不要拿字符流去读取字节文件,读出来的结果不对的。     

   Reader reader = new InputStreamReader(in,"charset");  //厉害了。。。。。         

     按行读,读字符串。

 ----------------------------------------------------------------------------  

 常见的字节文件:执行文件(*.exe,*.com,*.dll,),(*.jpg,*.bmp,*.jpeg,*.gif,*.png,*.ico,*.psd...)

                           视频(*.avi,*.mpg,*.mpeg,*.wmv,*.mp4,*.3pg,*.mov,*.rmvb,*.dat,*.flv,*.mkv,*.vod,..)

                           音频(*.mp3,*.wav,*.mid,*.rm,*.ape),*.doc,*.class              

          常见的字符文件:(*.txt,*.html,*.css,*.js,*.java,*.c,*.cpp,*.xml,*.ini,...)

-----------------------------------------------------------------------------

   InputStream 抽象类:FileInputStream / BufferedInputStream

缓冲区:   内存里的一块临时区域。

3.对象序列化/反序列化

  内存中对象保存到磁盘或者流中。存盘

  把磁盘或者流中的数据恢复成内存中对象。读取进度。

 ------------------------------------------------------------------------------

4.properties的文档字符编码一定是utf-8的。里面的中文显示都是unicode编码。

5.JDK5之后出现的新IO,新IO就是指管道流。

 输入管道--》输入流

 

网络编程

1.IP地址

  IPV4:4个字节,32位。4294967296,42亿个。70亿,IPV4地址很枯竭了,不够用。

  127.0.0.1   回路地址,本机地址。 localhost

     网络编号+地址编号

  ----------------------------------

  A

  B

  C

  D

  E

  IPV6:16个字节, 128位。宇宙大的数字,每个人的头发丝分配一个都用不完。

 2.域名

   http://www.sina.com.cn/

   DNS:Domain Name Service,域名解析服务。

   www.sina.com.cn --->ip--->mac

   

 3.OSI七层模型                                      TCP/IP

    

    应用                                                                   http,smtp,pop3,ftp,https,...

    表示                                                      APP  

    会话层

  ---------------------------------------   

    传输层                                                   TCP/UDP

  ----------------------------------------                        透明的

    网络层                                                   IP ARP RARP

  ----------------------------------------  

    数据链路层                                             物理层   802.11B 无线网,Bluebooth,...

    物理层                                                                以太网 双绞线(网线)  

    

    接口                                                      实现类

  TCP/IP implements OSI{

  

  }   

  TCP/IP  协议簇

  IP: Internet Protocol , 负责路由。网络层。

  TCP:Transport Control Protocol, 传输控制协议。负责端到端可靠连接。传输层

  -----------------------------------------------------------

  TCP:可靠的,面向连接的。三次握手,可靠的通信信道。成本高。

  socket:套接字, ip+port  127.0.0.1:8080,一个套接字表示一个服务(Service)。

  port:占用几个字节,两个字节。0-65535.

  1024以内,系统端口号,不允许分配给用户使用。

  80: www

  21:

  25

  110

  ...  

  UDP:不可靠,面向无连接。发送数据包(报) datagram,成本低。几乎为零。

    打电话:面向连接,可靠的,建立通信信道。 

    发短信:面向无连接,发送数据包。  

猜你喜欢

转载自blog.csdn.net/ymy6666/article/details/81225822