zoukankan      html  css  js  c++  java
  • 字节流

    在了解怎样操作对象之前,我们先解释一下我们经常忽视的JVM中的堆区, 栈区, 方法区.

    堆区: 
    1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令) 
    2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身 
    栈区: 
    1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中 
    2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。 
    3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。 
    方法区: 
    1.又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。 
    2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。 

    字节流====

    我们应该建立文件  

    ,在这其实文件夹和文本文件都是文件,只是文件夹是一个特殊的文件,这句话我们已经建立了一个文件对象,可以对file操作,查找它的路径,字节长度,同时我们注意在操作系统中分配的最小区间是4kb。

    对于读文件:我们应该新建一个要读 的对象,为了读取,我们必须建立管道,在读出来的是字节数组,要用String 转化以下。在这里a充当了一个缓存的作用,读入内存时 ,我们应该先将其读入a中,当a满了,或读完了,就可以放入内存。

    1. <span style="font-size:18px;">File file=new File("E:/html/logo.txt");//建对象  
    2. FileInputStream in=new FileInputStream(file);//建管道  
    3. int n=0;  
    4. byte[]  a=new byte[1024];//数据长度一般为1024个长度  
    5. while((n=in.read(a))!=-1)//将n读入数据a中  
    6. {  
    7. String str=new String(a,0,n);//不用这句可能会出乱,因为a是1024System.out.println(str);}对于一些文件的基本操作  
    8. 判断是否存在,若不存在就新建。  
    9. File file=new File("E:/html5/test.txt");  
    10. if(!file.exists())  
    11. {  
    12. file.createNewFile();  
    13. }  
    14. 判断是否存在文件夹,若不存在就新建。  
    15. File file=new File("D:/test");  
    16. if(!file.isDirectory())  
    17. {  
    18. file.mkdir();  
    19. }  
    20. 列出文件夹下的所有文件  
    21. if(file.isDirectory())  
    22. {  
    23. File[] file1=file.listFiles();  
    24. for(int i=0;i<file1.length;i++)  
    25. System.out.println(file1[i].getName());  
    26. }  
    27. 二:注意文件中的写 ,关闭  
    28. 我们应该在读取完毕关闭文件,关闭文件时应该注意, 要将其放到finally{}中。  
    29. 写文件与读文件一样,我们应该建立文件,建立通道。  
    30. File file=new File("E:/html5.txt");  
    31. FileOutputStream out=null;  
    32. out=new FileOutputStream(file);  
    33. String b="asdad";  
    34. out.write(b.getBytes());  
    35. 三,读取图片文件,并写入另一个图片文件,注意在此 用的是字符流,不能用字节流 。  
    36. File file=new File("E:/html/logo.jpg");  
    37. File file1=new File("D:/logo.jpg");  
    38. try {  
    39. FileInputStream in=new FileInputStream(file);  
    40. FileOutputStream out=new FileOutputStream(file1);  
    41. int n=0;  
    42. byte[]  a=new byte[1024];  
    43. try {  
    44. while((n=in.read(a))!=-1)  
    45. {  
    46. String str=new String(a,0,n);  
    47. out.write(a);  
    48. //System.out.println(str);  
    49. }  
    50. } catch (IOException e) {  
    51. // TODO Auto-generated catch block  
    52. e.printStackTrace();  
    53. }  
    54. } catch (FileNotFoundException e) {  
    55. // TODO Auto-generated catch block  
    56. e.printStackTrace();  
    57. }  
    58. <strong>  
    59. <span style="color:#FF0000;">B:字符流(与上同理)</span>  
    60. </strong>  
    61. FileReader fr=new FileReader(file);  
    62. <strong><span style="">  
    63. C:缓冲字节流 ,有一个最好的方法,也是提高效率的方法是按行 读取!</span></strong>  
    64. FileReader file=new FileReader("E:/html/logo.txt");  
    65. BufferedReader buf=new BufferedReader(file);  
    66. buf.readLine();  
    67. 他读出的是String,不要再定义一个字节,或字符了!其他不变</span>  
  • 相关阅读:
    在Unity中实现屏幕空间阴影(2)
    在Unity中实现屏幕空间阴影(1)
    在Unity中实现屏幕空间反射Screen Space Reflection(4)
    在Unity中实现屏幕空间反射Screen Space Reflection(3)
    在Unity中实现屏幕空间反射Screen Space Reflection(2)
    在Unity中实现屏幕空间反射Screen Space Reflection(1)
    AFO
    链接
    网络流24题
    本蒟蒻博客声明
  • 原文地址:https://www.cnblogs.com/tujoin/p/4508305.html
Copyright © 2011-2022 走看看