java 视频教程索引

 

目录

14-1  File_new.. 2

1)      ByteBuffer (缓冲区)... 2

2)      FileChannel  (文件通道)... 3

014-1 File _URL. 3

1)      File(文件)... 3

2)      URL(统一资源定位器)... 4

014-2  输入,输出流... 6

1  FileInputStream.. 6

1  OutputStream.. 7

3OutputStream    URL. 7

014-3  输入,输出流(其它)... 7

1  BufferedOutputStream.. 7

2  BufferedInputStream.. 8

3 ObjectInputStream.. 8

4  ObjectOutputStream.. 9

5  DataInputStream.. 9

6  DataOutputStream.. 9

014-3  输入,输出流(压缩)... 10

1  GZipOutputStream.. 10

2  GZipInputStream.. 10

3  ZipOutputStream.. 11

4  ZipInputStream.. 11

5  ZipEntry. 11

014-4  字符输入,输出流... 12

1  FileWriter. 12

2  FileReader. 12

3  BufferedWriter. 13

4  bufferedReader. 13

5 PrintWriter. 14

6StringWriter. 14

014-6编码... 15

汉字在电脑中如何存储的?... 16

015-1  Lambda表达式... 18

 

 

 

14-1  File_new

 

主要类

1) ByteBuffer (缓冲区)

作用:数据缓存(暂存)  

常用方法:

allocate(16);    // 建立缓冲区

put((byte) 65);  // 输入数据

flip();          // 翻转

position();      // 当前位置

limit();         // 读取限度

capacity();      // 获取长度

clear();         // 清空

 

 

注意:

写入 或者 读取之前必须清空。

写入 或者 读取之后必须翻转。

 

 

 

 

 

 

2) FileChannel (文件通道)

作用:数据 读取/写入

常用方法:

open();       // 打开

write();       // 写入

read();        // 读取

 

 

注意:

设定模式( 读取,写入)。

 

 

014-1 File _URL

主要类

1) File(文件)

作用:

将磁盘的文件(者文件夹)转换对象, 对文件或者文件夹进行操作。

常用方法:

createTempFile();   //  创建临时文本文件

createNewFile();    //  创建文本文件

mkdir();           //  创建文件夹

mkdirs();          //   创建所有文件夹

renameTo();       //   重命名

getName();        //   获取文件名

lastModified();     //   获取文件修改时间

 

delete();          //    删除

listFiles();         //    获取子文件或者子文件夹列表

listRoots();        //    获取文件的根目录列表  

 

isDirectory();      // 该对象是否文件夹

 isFile();           // 该对象是否文件

 

  exists();          // 检测,文件是否存在

  getPath();        // 相对路径

  getAbsolutePath();    // 绝对路径

  length();             // 文件大小

 

root.getTotalSpace();                // 一共空间

root.getFreeSpace();                 // 可用空间

 

注意:

创建文件 或者 文件夹时必须指定路径 并且 遵守命名规则。

2)  URL(统一资源定位器)

作用:网上的资源地址

常用方法:

getAuthority();   // 权威部分

getFile();      // 查询的路径

getPath();     // 文件的路径

getHost();     // 域名

getPort();     // 端口

getProtocol();     // 协议

getQuery();       // 查询的字符串

getRef();         // #号之后的字符串

注意:

getFile()   getPath() 方法的区别 ,即 getFile() 不包含查询字符串


 

014-2  输入,输出流

主要类  

1 FileInputStream     

作用:(IO输入,输出流) 数据源与目的地之间建立一个输送通道。

常用方法:

available();     // 文件占用的空间。

 

read();          // 每次循环(运行),读取下一个阶段(8个字节)

 

// read 读取得内容填充到(bytes)字节数组。

read(bytes);

 

readAllBytes();   // 读取全部。

 

// 读取指定的范围并读取的结果放到 bytes 数组

readNBytes(bytes, 0, bytes.length);   

 

skip(4); // 跳过 4 个字节后开始读取。

 

transferTo();  // 将数据加载到另一个对象。(文件拷贝或者压缩时非法方便。)

 

close();  // 关闭输入流。

注意:

使用 read(); read(bytes);  方法返回的数值性质不同。

read(); 方法返回的就是读取得字符 ASCII

read(bytes); 方法返回的就是 读取得位置(号)。

 

使用 read(); 方法时 指定读取范围。

对讲师建议

举例子体现出 read(); read(bytes); 方法的不同之处。

 

 

1 OutputStream   

作用:(IO输入,输出流) 数据源与目的地之间建立一个输送通道。

常用方法:

write();   // 写入数据

close();   // 关闭输出流。

注意:

使用 read(); 方法时 指定读取范围。

最后关闭流对象。;

3OutputStream    URL

作用:从(URL)网上获取资源并(URL OutputStream)下载。

 

常用方法:

url.openStream();                      // 生成资源的字节(输入)流  

inputStream.transferTo(outputStream);     // 生成输出流  

 

 

注意:

URL InputStream OutputStream  等类的关系,学会灵活运用。

 

 

014-3  输入,输出流(其它)

主要类 

1 BufferedOutputStream

作用 :首先用缓冲区积累数据,后向硬盘写入文本,速度快。

 

常用方法:

write(bytes);      // 将数据存储(写入)内存空间

toByteArray();     // 将数据转换字节数组

toString();        // 将数据转换字符串

flush();          //  数据存储(写入)硬盘空间

close();          //  关闭输出流。

 

注意:

flush(); 方法的作用。

 

2 BufferedInputStream

作用:  用缓冲区从硬盘读取文本文件,速度快。

首先用缓冲区积累数据,后读取。

常用方法:

read (bytes);  // 读取

close();       // 关闭输出流。

 

 

注意:

//  谨慎,认真思考。

//  用循环将数据填充字节数组(缓冲区)。 如下:

(read = bufferedInputStream.read(bytes, 0, bytes.length)) > -1

 

3 ObjectInputStream

作用:  指定的对象转换成输入流。

 

常用方法:

 readObject();

close();      //  关闭输入流。

 

 

注意:

对象的类型必须实现 Serializable 接口。

 

4 ObjectOutputStream

作用:  指定的对象转换成输出流。

 

常用方法:

 

writeInt();

 writeUTF();

 writeBoolean();

close();            //  关闭输出流。

 

 

注意:

仔细观察File , FileOutputStream, DataOutputStream 等类的关系。

写入的数据类型是什么?

 

5 DataInputStream

作用:  指定的数据对象转换成输入流。

 

常用方法:

readInt();      //  读取整数  

 readUTF();     //  读取字符串

 readBoolean();  //  读取布尔值

close();        //  关闭输入流。

 

 

注意:

谨慎,读取的数据类型是什么?

如果读取的对象是集合,则须知集合长度,才能进入循环。

6 DataOutputStream

作用 :指定的数据对象转换成输出流。

 

常用方法:

writeInt ();          //  写入整数   

writeBoolean();      //  写入布尔值  

writeUTF();          //  写入字符串  

 flush();             //  放到磁盘  

close();             //  关闭输出流。

 

 

注意:

仔细观察File , FileOutputStream, ObjectOutputStream 等类的关系。

 

 

 

 

014-3  输入,输出流(压缩)

主要类

1 GZipOutputStream

作用: 利用输出流进行压缩。

 

常用方法:

write(bytes);      // 将数据存储(写入)磁盘空间。

 

注意:

仔细观察File , FileOutputStream, GZipOutputStream等类的关系。

 

2 GZipInputStream

作用:利用输入流进行解压。

 

常用方法:

readAllBytes();      //  从磁盘读取数据。

 

注意:

1.  仔细观察File , FileInputStream, GZipInputStream, FileOutputStream等类的关系。

2.  ZipOutputStream可以进行压缩的输出,但是输出的位置不一定是文件。

3.  必须关闭 输入流 输出流。

 

 

3 ZipOutputStream

作用: 压缩。

 

常用方法:

 putNextEntry(zipEntry);  // 开始编写新的ZIP文件条目并将流定位到条目数据的开头。

write(bytes);           // 将一个字节数组写入当前ZIP条目数据。

closeEntry();   // 关闭当前ZIP条目并定位流以写入下一个条目。

close();       // 关闭当前ZIP条目并定位流以写入下一个条目。

 

 

注意:

1.仔细观察File , FileInputStream, ZipInputStream, FileOutputStream等类的关系。

2.必须关闭 输入流 输出流。

4 ZipInputStream

作用: 解压

 

常用方法:

 getNextEntry();    // 读取下一个ZIP文件条目,并将流定位在条目数据的开头。

close();           //  关闭此输入流并释放与该流关联的所有系统资源。

 

注意:

仔细观察File , FileInputStream, ZipInputStream, FileOutputStream等类的关系。

 

 

5 ZipEntry

作用:压缩实体。

此类用于表示ZIP文件条目。压缩文件中的每一个压缩实体都使用ZipEntry保存,一个压缩文件中可能包含一个或多个ZipEntry对象。

 

常用方法:

getName();             //  返回条目的名称。

   setLastModifiedTime( );   //  设置条目的最后修改时间。

   setSize();               //  设置条目数据的未压缩大小。

                

 

注意:

利用递归方法进行批量压缩,再三思考,深入理解。

 

014-4  字符输入,输出流

主要类

 1  FileWriter

作用: 直接写入 文本文件,不用转换类型。

 

常用方法:

  write();

close();

                

 

注意:

创建对象时,构造函数的参数意义是什么 ?不要忽视,必须设定编码。

利用 StandardCharsets.UTF_8

 

 

2 FileReader

作用: 直接读取 文本文件,不用转换类型。

 

常用方法:

  read ();

close();

                

 

注意:

创建对象时,构造函数的参数意义是什么 ?不要忽视,必须设定编码。

利用 StandardCharsets.UTF_8

 

 

3 BufferedWriter

作用: (用缓冲区) 写入 文本文件,速度快。

 

常用方法:

  write ();      // 写入文本

newLine();    // 添加换行符。

flush();          // 放到磁盘

close();      // 关闭对象

                

 

注意:

创建对象时,构造函数的参数意义是什么 ?不要忽视,必须设定编码。

利用 StandardCharsets.UTF_8

FileWriter BufferedWriter   关系是什么

 

4 bufferedReader

作用: (用缓冲区) 读取 文本文件,速度快。

常用方法:

 read ();         // 读取

readLine();      // 逐行读取

close();         // 关闭对象

                

注意:

利用 StandardCharsets.UTF_8

FileReader bufferedReader 关系是什么    

 

 

5PrintWriter

作用:不用转换数据类型,原始数据内容直接写入到文本文件。

 

常用方法:

println(12);          //  直接写入整数类型数据

 println(true);        //  直接写入布尔类型数据

 println(" printWriter ");   //  直接写入字符串类型数据

 println(0);           //  直接写入零

 println(1000_000L);   //  直接写入 Long类型数据

 println(1000_000D);   //  直接写入 double类型数据

 println(0 5F);         //  直接写入  float类型数据

 format("% 3f", 0 25475);   //  格式化结果写入到文本文件

 flush();                 //   放到磁盘

 close();                 //   关闭对象

 

                

注意:

1 File PrintWriter 关系是什么

2)必须关闭对象。

 

6StringWriter

作用: 用缓存写入文本, 速度快。

 

常用方法:

 append();     // 将指定字符添加到此 writer

write();       //   写入字符串 或者 字符

flush();       //   刷新

close();       //   关闭对象

                

注意:

Write方法的当前参数类型是什么 谨慎使用。

014-6编码

指定的字符串 az12新”

     [UTF-8]     编码中一个英文字符占用1个字节, 一个 中文字符占用3个字节,总共占用7 字节,(如果含有维文字符,则一个维文字符占用2个字节)

 61 7A 31 32 E6 96 B0

 01100001 01111010 00110001 00110010 11100110 10010110 10110000

 

     [ANSI] 编码中一个英文字符占用1个字节, 一个 中文字符占用2个字节,总共占用6 字节(不支持维文,如果含有维文字符,则自动会变成问号)。

 61 7A 31 32 D0 C2

 01100001 01111010 00110001 00110010 11010000 11000010

 

     [UTF-16 LE]      编码中FF FE 是表示读取方向(占用2个字节),从右到左读取,每一个英文字符 或者 中文字符都占用2个字节, 总共占用12 字节。

FF FE 61 00 7A 00 31 00 32 00 B0 65

11111111 11111110 01100001 00000000 01111010 00000000 00110001 00000000 00110010 00000000 10110000 01100101

 

     [UTF-16 BE]     编码中 FE FF 是表示读取方向(占用2个字节),从左到右读取,每一个英文字符或者 中文字符都占用2个字节,总共占用12 字节。

FE FF 00 61 00 7A 00 31 00 32 65 B0

11111110 11111111 00000000 01100001 00000000 01111010 00000000 00110001 00000000 00110010 01100101 10110000

 

指定的字符串 “饭پ3a

 

       [UTF-8-BOM]       EF BB BF 是表示BOM(占用3个字节),总共占用10 字节。

EF BB BF E9 A5 AD D9 BE 33 61

11101111 10111011 10111111 11101001 10100101 10101101 11011001 10111110 00110011 01100001

 

 

移除BOM

E9 A5 AD D9 BE 33 61

11101001 10100101 10101101 11011001 10111110 00110011 01100001

汉字在电脑中如何存储的?

UTF-8 编码中, 一个汉字占用3个字节。

 汉字的 UTF-8 编码格式 :  1110xxxx   10xxxxxx  10xxxxxx

 

“严” 的最后一个二进制位开始,依次从后向前填入格式中的 x ,多出的位补 0。这样就得到了,“严”的UTF-8编码是“11100100 10111000 10100101”,转换成十六进制就是E4B8A5

由分成 3 个部分:100        111000        100101 

  3 (字节)

1110   xxxx

111  00100

 

  2 (字节)

10   xxxxxx

10  111000

 

  1 (字节)

10   xxxxxx

10  100101

 

 

 

合并结果如下

   1 字节    2 字节   3 字节

  11100100    10111000   10100101

注意:

对于英语字母,UTF-8编码和 ASCII 码是相同。

 

015-1  Lambda表达式

作用 :使用Lambda表达式,可以对一个接口非常简洁的实现。

定义 :匿名函数 ,函数式编程。( java 8 的新特性 )

包括 :参数列表,方法体。

要求 :接口中必须定义只有一个方法。

参数列表 : ( )

方法体 : { }

 

 Lambda 运算符 :  ->   读作 goes to

 

常用方法:

 

        // 无返回值,无参数

        NoneReturnNoneParameter lambda1 = () -> {

            System.out.println("\n 1. 无返回值,无参数");

        };

        lambda1.test();

 

        // 无返回值,单个参数 1

        NoneReturnSingleParameter lambda2_1 = a -> print(a);

 

        // 无返回值,单个参数 2 (精简)

        NoneReturnSingleParameter lambda2_2 = Tester1::print;

        lambda2_1.test(18);

        lambda2_2.test(14);

 

   // 有返回值,单个参数

  SingleReturnSingleParameter lambda5 = (a) -> {

 System.out.println("\n 5. 有返回值,单个参数");

     return a * 2;

  };

 // SingleReturnSingleParameter lambda5 = a -> a * 2;  // 可以省略 括号 ( ) ,{ } Return

 lambda5.test(5);

                

注意:

接口现实时,有没有返回值 ?有没有参数 能否省略有些符号

   ( )-> 是相当于实例化 (  )  此括号代表 new 关键字。

 

 


评论

互相学习,共同进步。

2024-04-11 19:38:15

希望大家坚持学习。。。

2024-04-11 19:36:36

我要学习 Java 编程。

2024-04-11 19:35:54

好好学习天天向上。 

2024-04-11 19:35:23

教程索引指出的是学习重点。

2024-04-11 19:34:56

  • 1

编程爱好者 © 2021 - 2024