资讯详情

JAVA IO流学习笔记

IO流

1.创建文件夹

public static void main(String[] args) { 
             File file = new File("/Users/admin");     if (!file.exists()){ 
                 boolean result = file.mkdir();         System.out.println(result);     } } 

2.修改文件夹的名称

public static void main(String[] args) { 
              File file = new File("/Users/admin");     if (file.exists()){ 
                boolean result = file.renameTo(new File("/Users/admins"));         System.out.println(result);     }else { 
                 System.out.println(false);     } } 

3.删除文件夹

如果文件夹的目录有其他文件,即文件夹不空,则不能删除文件夹

public static void main(String[] args) { 
        File file = new File("/Users/admin");if (file.exists()){ 
        boolean delete = file.delete();System.out.println(delete);

    }
}

4.删除文件夹里面有文件的文件夹

file.isDirect() 判断是不是一个目录

public static boolean recursionDelete(File file){ 
        if (file.isDirectory() && file.exists()){ 
        File[] files = file.listFiles();if (files != null) { 
        for (File f : files) { 
        recursionDelete(f);

            }}}


    return file.delete();


}

5.字符是如何存在电脑上的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nHwqYSZx-1658109314844)(IO.assets/image-20220713114406914.png)]

字节输入流

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oJhigz0A-1658109314846)(IO.assets/image-20220713114519062.png)]

1.FileInputStream 文件字节输入流 ,

1.可以读取文本,图片,音乐,视频等文件数据

//传入文件路径
public FileInputStream(String name){ 
        

}
//表示文件的file对象
public FileInputStream(File file){ 
        

}
//传入文件描述
public FileInputStream(FileDescriptor fdObj){ 
        


}

2.read()方法每次读取一个字节 返回 一个值

public class TestFileInputStream { 
        public static void main(String[] args) { 
        

        try { 
        FileInputStream in = new FileInputStream("/Users/admin/IO.txt");int b;while ((b=in.read())!= -1){ 
        System.out.print((char)b);}

// System.out.println((char) in.read());} catch (FileNotFoundException e) { 
        
            e.printStackTrace();} catch (IOException e) { 
        
            e.printStackTrace();}


    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ybFA7aN-1658109314846)(IO.assets/image-20220713141814784.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y7lZoPdl-1658109314847)(IO.assets/image-20220713142012828.png)]

3.关闭流

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bydWCdZQ-1658109314847)(IO.assets/image-20220713142150049.png)]

public class TestFileInputStream { 
        public static void main(String[] args) { 
        FileInputStream in = null;try { 
        
            in = new FileInputStream("/Users/admin/IO.txt");int b;while ((b = in.read()) != -1) { 
        // 输出字节System.out.print((char) b);}

            //System.out.println((char) in.read());} catch (FileNotFoundException e) { 
        
            e.printStackTrace();} catch (IOException e) { 
        
            e.printStackTrace();} finally { 
        //当流不为空的时候if (in != null) { 
        try { 
        //关闭流
                    in.close();} catch (IOException e) { 
        
                    e.printStackTrace();}}}


    }
}

具体流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8jS0n2Yv-1658109314848)(IO.assets/image-20220713142605731.png)]

4.读取多个字节

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1rOfbPQQ-1658109314848)(IO.assets/image-20220713142812206.png)]

public class TestFileInputStream { 
        public static void main(String[] args) { 
        FileInputStream in = null;try { 
        //初始化字节流
            in = new FileInputStream("/Users/admin/IO.txt");//创建字节数组byte[] bytes = new byte[3];//读取的字节数int length;while ((length=in.read(bytes))!=-1){ 
        System.out.print(new String(bytes,0,length));}




// int b;
// while ((b = in.read()) != -1) { 
        
// // 输出字节
// System.out.print((char) b);
// }

            //System.out.println((char) in.read());} catch (FileNotFoundException e) { 
        
            e.printStackTrace();} catch (IOException e) { 
        
            e.printStackTrace();} finally { 
        //当流不为空的时候if (in != null) { 
        try { 
        //关闭流
                    in.close();} catch (IOException e) { 
        
                    e.printStackTrace();}}}


    }
}

OutputStream 字节输出流

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-02nxdCHe-1658109314849)(IO.assets/image-20220713143917542.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y4u6Fh8f-1658109314849)(IO.assets/image-20220713144006149.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FTfwTjoP-1658109314849)(IO.assets/image-20220713144047257.png)]

1.构造方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DzcVVkMu-1658109314850)(IO.assets/image-20220713144125290.png)]

输出过程 现根据编码表找到对应的十进制码值,再将码值 转化为字节 再调用输出流的write()方法依次写入文件中 1.每次写入单个字节 2.每次写入一个字节数组。

public class OutputStreamTest { 
        public static void main(String[] args) { 
        //文件字节输出流FileOutputStream out = null;//初始化文件字节输出流try { 
        
            out = new FileOutputStream("/Users/admin/OutputStream.txt");//创建要写入的数据String str = "abcdefgh";//转化为字节数组byte[] bytes = str.getBytes();//将数据输入到文件中
            out.write(bytes);

        } catch (FileNotFoundException e) { 
        
            e.printStackTrace();} catch (IOException e) { 
        
            e.printStackTrace();} finally { 
        //当流补位空if (out != null){ 
        try { 
        //关闭流
                    out.close();} catch (IOException e) { 
        
                    e.printStackTrace();}}}


    }
}

public class OutputStreamTest { 
        public static void main(String[] args) { 
        //文件字节输出流FileOutputStream out = null;//初始化文件字节输出流try { 
        File file = new File("/Users/admin/OutputStream.txt");if (!file.exists()){ 
        
                file.createNewFile();}
            out = new FileOutputStream(file);

            //创建要写入的数据String str = "abcdefgh22";//转化为字节数组byte[] bytes = str.getBytes();//将数据输入到文件中
            out.write(bytes);

        } catch (FileNotFoundException e) { 
        
            e.printStackTrace();} catch (IOException e) { 
        
            e.printStackTrace();} finally { 
        //当流补位空if (out != null){ 
        try { 
        //关闭流
                    out.close();} catch (IOException e) { 
        
                    e.printStackTrace();}}}


    }

2.方法说明

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JXEmkjgH-1658109314850)(IO.assets/image-20220713145729777.png)]

3.指定写入方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5WX5wUXr-1658109314850)(IO.assets/image-20220713150039060.png)]

4.append true:追加 false:覆盖无论你有没有写入数据只要执行方法原有的数据都会被清除

没带 append 的两个构造方法是内部调用 有append的方法 其中 append 默认为false; 即为覆盖 无论你有没有写入数据只要执行方法原有的数据都会被清除

追加模式

public class OutputStreamTest { 
        public static void main(String[] args) { 
        //文件字节输出流FileOutputStream out = null;//初始化文件字节输出流try { 
        File file = new File("/Users/admin/OutputStream.txt");if (!file.exists()){ 
        
                file.createNewFile();}//开启追加模式
            out = new FileOutputStream(file,true);

            //创建要写入的数据String str = "你好呀";//转化为字节数组byte[] bytes = str.getBytes();//将数据输入到文件中
            out.write(bytes);

        } catch (FileNotFoundException e) { 
        
            e.printStackTrace();} catch (IOException e) { 
        
            e.printStackTrace();} finally { 
        //当流补位空if (out != null){ 
        try { 
        //关闭流
                    out.close();} catch (IOException e) { 
        
                    e.printStackTrace();}}}


    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OORSgifp-1658109314851)(IO.assets/image-20220713151131893.png)]

5.复制文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jf0M3s48-1658109314851)(IO.assets/image-20220713151234348.png)]

边读边写 读到-1 的时候结束

public class TestInAndOut { 
        public static void main(String[] args) { 
        //输入流InputStream in = null;

        //输出流OutputStream out= null;


            try { 
        //初始化输入流
                in = new FileInputStream("/Users/admin/IO.txt");//初始化输出流
                out = new FileOutputStream("/Users/admin/OutputStream.txt");


                byte[] bytes = new byte[1024];//定义读取字节长度
                
                int length;while ((length = in.read(bytes)) != -1){ 
        // 写出长度0-length
                    out.write(bytes,0,length);

                }

            } catch (FileNotFoundException e) { 
        
                e.printStackTrace();

            } catch (IOException e) { 
        
                e.printStackTrace();}finally { 
        //关闭流if(in!=null){ 
        try { 
        
                        in.close();} catch (IOException e) { 
        
                        e.printStackTrace();}}if(out!=null){ 
        try { 
        
                        out.close();} catch (IOException e) { 
        
                        e.printStackTrace();}}}

    }



}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wEdYWSIz-1658109314851)(IO.assets/image-20220713154704557.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nVG87lB0-1658109314852)(IO.assets/image-20220713155905861.png)]

6.创建未知文件

File file = new File("/Users/admin/java/OutputStream.txt");
if (!file.exists()){ 
        //创建目录if (!file.getParentFile().mkdirs()){ 
        System.out.println("目录创建失败");return;}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lwlndBbK-1658109314852)(IO.assets/image-20220713171043389.png)]

7.UTF-8

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MFJTA0FF-1658109314852)(IO.assets/image-20220713172109913.png)]

以字符为单位读取数据

字符占几个字节,就连续读几个字节。

1.字符输入流

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f5AMXjSH-1658109314852)(IO.assets/image-20220713172403323.png)]

构造方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HmXzRJlj-1658109314853)(IO.assets/image-20220713172452180.png)]

public class FileReaders { 
        public static void main(String[] args) { 
        //声明字符输入流FileReader fileReader  = null;try { 
        
            fileReader = new FileReader("/Users/admin/IO.txt");byte[] bytes = new byte[4];int b;while ((b=fileReader.read()) != -1){ 
        System.out.print((char) b);}

        } catch (FileNotFoundException e) { 
        
            e.printStackTrace();} catch (IOException e) { 
        
            e.printStackTrace();} finally { 
        if (fileReader!=null){ 
        try { 
        
                    fileReader.close();} catch (IOException e) { 
        
                    e.printStackTrace();}}}}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iP5Bmbze-1658109314853)(IO.assets/image-20220713173309222.png)]

2. 写入数据 字符写入

3.字符输出流 Writer

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ouJ06wUe-1658109314853)(IO.assets/image-20220713221643483.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KPmGZGgj-1658109314854)(IO.assets/image-20220713221746702.png)]n’bnb

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sE3fw5nK-1658109314854)(IO.assets/image-20220713222037139.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mC4YJhtd-1658109314854)(IO.assets/image-20220713222254395.png)]

标签: mc4端子连接器压接ly

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台