美文网首页
2022-11-04

2022-11-04

作者: RobertLiu123 | 来源:发表于2022-11-03 17:29 被阅读0次

    一、同步

    1、同步代码块
    把要实现线程安全的代码放到同步代码块中

    java中任何对象内部都有一个开关,你可以理解为标志位,1就表示关,0表示开

    2、同步方法

    二、io

    input 输入
    output 输出
    计算机中的文件以及文件中的内容
    File控制计算机中的文件和文件夹


    image.png

    三、File常用的方法

    String getName():获取文件名称
    String getPath():获取文件路径
    String getAbsolutePath():获取绝对路径
    File getParentFile():获取上级目录
    boolean exists():判断文件是否存在
    boolean isFile() :是否是文件
    boolean isDirectory():判断是否是目录
    boolean delete() :删除文件
    boolean mkdirs():创建当前目录和上级目录
    File[] listFiles() :列出所有文件对象

    四、编码格式

    五、流

    管道,java语言操作文件中的内容就需要用流
    根据流向划分:
    输入流
    输出流
    向内存走,叫输入
    从内存往外走,叫输出

    根据传输内容划分
    字节流
    字符流
    字节型文件、字符型文件
    txt打开乱码就是字节型文件,不乱码就是字符型文件

    根据依赖其他流的程度划分
    低级流
    高级流

    字节输入流 InputStream
    字节输出流 OutputStream

    字符输入流 Reader
    字符输出流 Writer

    六、读取文本内容

    File file = new File("d:/a/haha.txt");
            FileInputStream fis = null;
            try {
                fis = new FileInputStream(file);
                int num = -1;
                StringBuilder sb = new StringBuilder();
                while((num = fis.read()) != -1) {
                    sb.append((char)num);
                }
                System.out.println(sb.toString());
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                if(fis != null) {
                    try {
                        fis.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
    

    七、向文本中写入内容

    File file = new File("d:/a/hehe.txt");
            FileOutputStream fos = null;
            try {
                fos = new FileOutputStream(file);
                fos.write('a');
                fos.flush();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                if(fos != null) {
                    try {
                        fos.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
    

    八、缓冲

    File file = new File("d:/a/haha.txt");
            FileInputStream fis = null;
            try {
                fis = new FileInputStream(file);
                byte[] buff = new byte[1024];
                int length = -1;
                StringBuilder sb = new StringBuilder();
                while((length = fis.read(buff)) != -1) {
                    String str = new String(buff,0,length);
                    sb.append(str);
                }
                System.out.println(sb.toString());
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                if(fis != null) {
                    try {
                        fis.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
    

    九、向文本中写入很多内容

    File file = new File("d:/a/hehe.txt");
            FileOutputStream fos = null;
            try {
                fos = new FileOutputStream(file,true);
                fos.write("gdasgdystdsgdhwgdyyuw".getBytes());
                fos.flush();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                if(fos != null) {
                    try {
                        fos.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
    

    作业!!!从c盘拷贝wbb.jpg粘贴到d盘,叫mfs.jpg


    image.png

    十、自带缓存

    File file = new File("d:/a/haha.txt");
            FileInputStream fis = null;
            try {
                fis = new FileInputStream(file);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            BufferedInputStream bis = new BufferedInputStream(fis);
    

    十一、对象序列化

    存到文件中

    Human human = new Human(1, "能能");
            File file = new File("d:/a/haha.txt");
    FileOutputStream fos = new FileOutputStream(file);
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(human);
            oos.flush();
    

    从文件取

    File file = new File("d:/a/haha.txt");
            FileInputStream fis = new FileInputStream(file);
            ObjectInputStream ois = new ObjectInputStream(fis);
            Human human1 = (Human)ois.readObject();
            System.out.println(human1.getId());
            System.out.println(human1.getUsername());
    
    image.png
    image.png
    image.png
    image.png
    image.png

    相关文章

      网友评论

          本文标题:2022-11-04

          本文链接:https://www.haomeiwen.com/subject/burytdtx.html