栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA高级特性 流 笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA高级特性 流 笔记

目录

1、流

字符集:

概念:传输数据的通道

分类:

字符流: 

字节流:  

序列化和反序列化

图:


1、流

字符集:

        utf-8:汉字占三字节

        gbk :汉字占两个字节

        byte[ ] bytes=str.getBytes(CharSet cs);

        String str=new String(byte[] bytes,CharSet cs);

概念:传输数据的通道

分类:

        内容:字符流 、字节流

        方向:输入流、 输出流

        功能:节点流、处理流(直接或间接继承节点流)

        特性(数据源):文件流、网络流

        流的释放顺序:和流的创建顺序相反。

程序在内存中运行,文件在磁盘上,把文件从磁盘上读入内存中来,这就需要输入流。反之,把内存中的数据写到磁盘上的文件里就需要输出流。

文件:java..io.File

        文件路径(不可以出现空格中文):

                相对路径:相对于当前工程(测试环境(工程的根目录)、运行环境)

                绝对路径:相对于分区(从c d盘.....)

File f=new File("路径");

boolean exist=f.exists();//判断是否存在该路径

System.out.println(exist);

true boolean isFile = f.isFile();//是否是文件

boolean isDir=f.isDirectory();//是否是目录

boolean isAbs=f.isAbsolute();//是否是绝对路径

boolean canRead = f.canRead();//能否读

boolean canWrite = f.canWrite();//能否写

boolean canExecute = f.canExecute();//是否有权限执行

boolean hidden = f.isHidden();//是否是隐藏

String fileName = f.getName();//输出文件名

String path = f.getPath();//输出路径

String absolutePath = f.getAbsolutePath();//输出绝对路径

boolean delete = f.delete();//删除

f.deleteOnExit();//在进程结束时删除

String absolutePath = f.getAbsolutePath();//上一次修改的时间戳

boolean mkdir = f.mkdir();//创建目录,只能在最上级的空目录下 否则失败

boolean mkdirs = f.mkdirs();//创建目录

File[] files = f.listFiles();//列出文件

File[] file2=f.listFiles((file,name)->name.matches(".*\.txt"));列出txt文件

File[] file3=f.listFiles(file->file.isFile());//

File src=new File("文件路径");

boolean renameTo = src.renameTo(路径);//移动(根据路径可能会改名)

File tempFirst = File.createTempFile("tempFirst", ".后缀")

try {

File tempFirst = File.createTempFile("tempFirst",后缀/创建临时文件

System.out.println(tempFirst);//C:....AppDataLocalTemptempFirst2744633952213336076.txt

}

catch (IOException e)

{

e.printStackTrace();

}

字符流:  java.io.*

        输入:Reader    

                FileReader fr=new FileReader("C:\Users\18915\Desktop\11.tx

                 int read=fr,read(char[] arr);//read为单次实际读取的字符数,只会覆盖前面

           

        

       

        输出:Writer

        final String PATH="路径";

        Scanner input=new         Scanner(System.in);

        //true表示继续追加  false表示覆盖 不可逆

        BufferedWriter bw = new BufferedWriter(new FileWriter(PATH, true),1024); while(true){          String line=input.nextLine(); bw.write(line); bw.newLine();

                 if (line.equals("EXIT")){                 

                         break;

                 }

                // bw.flush();

                  bw.close();

            }

字节流:  

        输入:InputStream     

        输出:OutputStream

    static void close(AutoCloseable... acs) {
        for (AutoCloseable ac : acs) {
            try {
                ac.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }


//单个文件拷贝
        final String SRC_PATH = "C:\Users\...\Desktop\iff\Collection.png";
        final String DST_PATH = "C:\Users\....\Desktop\iff\121.png";
        final int M=1024*1024;
        final int BUFFER_SIZE=128*1024*1024;
        final long FILE_SIZE=new File(SRC_PATH).length();
        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;
        try {
            bis = new BufferedInputStream(new java.io.FileInputStream(SRC_PATH),BUFFER_SIZE);
            bos = new BufferedOutputStream(new java.io.FileOutputStream(DST_PATH),BUFFER_SIZE);
            byte[] bytes=new byte[16*M];
            int read =-1;
            float total=0;
            long begin=System.currentTimeMillis();
            while(-1!=(read=bis.read(bytes))){
               bos.write(bytes,0,read);
               total+=read;
                System.out.println(total/FILE_SIZE);
            }
            bos.flush();
            System.out.println((System.currentTimeMillis()-begin)/1000.0);
        } catch (FileNotFoundException e) {
            e.printStackTrace();//找不到路径
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            close(bos, bis);
        }

序列化和反序列化

图:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995195.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号