java学习21天之Io流

发布于:2022-12-19 ⋅ 阅读:(355) ⋅ 点赞:(0)

File

含义:代表文件或文件夹

作用:可以使用代码创建,删除,修改等文件操作

使用:

         1,创建File对象

                File(String pathName); pathName:文件路径

                File(URI uri); uri:文件的资源定位符(统一资源定位符 也被称为 网页地址 )

                File(File parent,Sring child) parent:文件或文件夹的上一级文件夹 child:当前文件或文件夹名称(要加后缀)

                File(String parent,String child) parent:文件或文件夹的上一级文件夹路径 child:当前文件或文件夹名称(要加后缀)

注意: 相对路径:在Eclipse中相对的是当前项目下的位置 ..上一级 .当前目录

绝对路径 从盘符开始书写到文件所在位置

路径分割符: File.separator:获取当前系统的路径分割符如

File file4 = new File("D:"+File.separator+"JAVASHIXI"+File.separator+"CordE"+File.separator+"test6666");

         2,对文件进行操作

                创建文件 file对象.createNewFile(); 注意:如果文件存在创建失败不会删除再重建

                创建文件夹 file对象.mkdir();创建一级文件夹 file对象.mkdirs();创建多级文件夹(建议使用)

                删除文件或文件夹 file对象.delete(); 注意:

                        1,只能删除空文件夹

                        2,在多级路径时,只删除最后一个,在多级文件夹中对文件所有的操作都是针对最后一个

                 修改文件名称: file.renameTo(File file)    

                查询:

                        查询文件字节数:length()

                        查询文件绝对路径:getAbsolutePath()

                        查询文件名称:getName()

                         获取上级文件对象:getParent();

                        判断文件是否为文件夹:isDirectory()

                        判断文件是否为文件:isFile()

                         获取当前文件夹下所有文件与文件夹listFiles();

                                 注意:文件过滤器与文件名称过滤器   

package jichuways;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
public class Test4 {
    public static void main(String[] args) {
        File file = new File("D:\\");
    //以下是文件过滤器
//        File[] files = file.listFiles(new FileFilter() {
//            @Override
//            public boolean accept(File pathname) {
//                if (pathname.isDirectory()) {
//                    return true;//返回TRUE表示满足此条件的存储于文件数组里
//                }
//                return false;
//            }
//        });
//        for (File f2 : files) {
//            System.out.println(f2);
//            
//        }//文件过滤器相对于文件名称过滤器少提供了name需要pathname.getName()方法获取
        //以下是文件名称过滤器
        File[] files2 = file.listFiles(new FilenameFilter() {    
            @Override
            public boolean accept(File dir, String name) {
                if (name.equals("新建文件夹")) {
                    return true;
                }
                return false;
            }
        });
        for (File file2 : files2) {
            System.out.println(file2);    
        }
    }

}
 

I/O流

        作用:传输数据

                如: 1,将文件中的数据传入程序中

                        2,将程序中的数据写入文件中

                        3,将内存中的数据读取到程序中

                         4,将程序中的数据写入到内存中 ... 可以理解为管道

        分类:

                按照流向分类

                        输入流

                        输出流

                按照传输的最小单位

                        字节(Byte)流

                                字节流(*) 字节输入流

                                含义:将数据读取到程序中,

                                读取的数据最小单位为byte

                                Java中对应的类:InputStream(抽象类)

                                InputStream提供的方法:

                                        int read():一次读取一个字节,返回值为读取到的字节数,返回值为-1表示读取结束

                                        int read(byte[] b): 一次读取多个数据,到数组b中,返回值为本次读取到的字节数 最大读取的长度是数组b的长度 最小读取的长度为-1表示读取结束 本次读取是在上一次结束位置开始的

                                        int read(byte b[], int off, int len) 一次读取多个数据,到数组b中,返回值为本次读取到的字节数 off:开始位置 len:存储几个字节的数据

                                         void close():关闭输入流 倒着关

                                步骤:

                                        1,创建输入流对象

                                        2,准备工具 byte的字节数组 int的变量记录长度

                                         3,循环读取数据

                                         4,使用数据

                        字节输出流

                                含义:将程序中的数据写入到指定位置,

                                写入的最小单位为byte

                                 Java中对应的类:OutputStream(抽象类)

                                OutputStream提供的方法:

                                        void close():关闭输出流

                                        void flush():冲刷(防止数据残留)

                                         void write(int b):一次写入一个字节的数据

                                        void write(byte b[]):将数组中的数据写入到指定位置

                                        void write(byte b[], int off, int len):将数组中的从off位置开始,写入len个 字节的数据到指定位置

                常用子类:

                        文件流

                                 FileInputStream:文件输入流 作用:将文件中的数据读取到程序中

                                FileOutputStream:文件输出流 作用:将程序中的数据写入到文件中

                 案例: 实现文件的拷贝 

       

                内存流

        ByteArrayInputStream 作用:将内存中的数据读取到程序中 ByteArrayOutputStream 作用:将程序中写入到内存中 特有方法: toByteArray();将内存中的数据转换为字节数组

                        

                          缓冲流

                                        作用:提高效率

                                        是包装流

                                        BufferedInputStream:缓冲字节输入流    

                                                构造函数: BufferedInputStream(InputStream in):缓冲区默认为8kb BufferedInputStream(InputStream in,int size): 二参为自定义的缓冲区大小,单位b    

                                                                BufferedOutputStream:缓冲字节输出流 构造函数: BufferedOutputStream(out):缓冲区默认为8kb BufferedOutputStream(out, size) 二参为自定义的缓冲区大小,单位b    

               

                      对象流

                                作用:将对象作为数据进行传递

                                是包装流

                                ObjectInputStream

                                        特有方法: readObject():读取一个对象

                                ObjectOutputStream

                                        特有方法: writeObject():写入一个对象

注意:读取或写入的对象,需要现实序列化接口.存储的对象的属性的数据类型也必须实现序列化接口

                        字符(Char)流

                                 传输的最小单位char(字符)

                                父类 Reader:字符输入流父类

                                提供方法:

                                        int read():一次读取一个字符

                                        int read(char[] cbuf):一次读取一组字符

                                         int read(char[] cbuf, int off, int len)

                                        void close()

                                Writer:字符输出流父类

                                        提供的方法:

                                                void write(int c)

                                                void write(char cbuf[])

                                                 void write(char cbuf[], int off, int len)

                                                void write(String str)

                                                  void flush()

                                                   void close()

常用子类:

        文件流 FileReader

                    FileWriter

         转换流 

         将字节输入流(InputStream)转换为字符输入流(Reader)

        将字符输出流(Writer)转换为字节输出流(OutputStream)

        InputStreamReader

        OutputStreamWriter 注意:后期一些方法只需要字符流,此时就需要使用转换流将字节流转换后使用

           缓冲流

         BufferedReader

        特有方法: readLine():一次读取一行

        BufferedWriter: 特有方法: newLine():写入换行

        标准流:

                PrintStream:标准输出流

                按照功能分类

                        节点流

                        包装流

序列化

实现Serializable接口的类,就是实现序列化

        注意: 1,static或transient(瞬时)修饰的属性不会参与序列化

                 2,使用对象流存储对象,对象必须实现序列化,包含对象的属性也要

                3,使用对象流存储对象后,在使用对象流读取对象,对象对应的类不能发生改变

网络

概念:

        计算机之间练习的路线

        协议:

                http,https www(万维网)

                ipv4

                特殊ip:127.0.0.1(localhost)表示本机

                ipv6

                ip:计算机在互联网的地址 0~255.0~255.0~255.0~255

                 端口:软件在计算机中的地址 0~65535

inetAdress

含义:

        计算机在互联网中的地址相关信息

         获取对象:

                 获取本机:static InetAddress getLocalHost()

                 获取别的:

                                static InetAddress getByName(指定的计算机可以写ip,网址,设备名称)

                                static InetAddress getAllByName(指点那个计算机信息)

        提供方法:

                getHostName()获取设备名称

                 getHostAddress():获取地址

Tcp/Ip

特点: 面向有连接的,安全的,速度慢 三次握手,四次挥手

核心:

        服务端

                作用:接收处理客户端的请求

                关系:一个服务器可以对应多个客户端

                对应的类:ServerSocket

         客户端

                作用:接收用户或服务器的数据并处理

                  对应的类:Socket

        流程: 客户端发送请求到服务器,服务器接收客户端传递的数据,并处理,返回信息给客户端

UDP

特点: 面向无连接的,不安全的,速度快

问题: 丢包(数据丢失)

socket(套接字)

即网络编程

网络编程的协议分为TCP UDP

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到