JAVA IO流_3

来源:互联网 发布:萝莉有杀气源码 编辑:程序博客网 时间:2024/04/30 10:22

                                           JAVA IO流_3                                   

   一. 随机流

       RandomAccessFile

         不属于io的成员     
        可以直接操作数据

        特性:带有文件指针

 //File f=new File("D"+File.separator+"rand.txt");//RandomAccessFile rf=new RandomAccessFile(f, "rw");//四种模式      //method1(rf);RandomAccessFile rand2=new RandomAccessFile(new File("D:\\char02.txt"), "rw");int len=0;byte[] by=new byte[1024];while((len=rand2.read(by))!=-1){System.out.println(new String(by,0,len));rand2.write(by,0,len);}}////public static void method1(RandomAccessFile rf) throws IOException {//rf.seek(0);//System.out.println(rf.readLine());//rf.writeUTF("how are you");//System.out.println(rf.getFilePointer());//rf.writeInt(10);//4//rf.writeBoolean(false);  //1//rf.writeChar('a');//2//System.out.println(rf.getFilePointer());//rf.seek(0);   //绝对定位,改变文件指针//System.out.println(rf.readInt());//}}


      

    二.配置文件的使用

         一些项目常用的固定的参数信息,通常我们会建一个文件进行存储
 * Properties 继承hashtable,实现map集合的。
        存放的数据信息是键值对
        properties 存放的键值对都是字符串的

        Properties

       

Properties p=new Properties();InputStream in=new FileInputStream("test.properties");//解决中文乱码的问题//InputStreamReader bin=new InputStreamReader(in);p.load(in); //将流里面的配置信息加载进pro的列表 String name=p.getProperty("name");String age=p.getProperty("age");String gender=p.getProperty("gender");System.out.println(name+"=="+age+"=="+gender);//迭代器的方式Iterator<String> it= p.stringPropertyNames().iterator();while(it.hasNext()){String key=it.next();System.out.println(key+":"+p.getProperty(key));}//往配置文件里面写内容FileOutputStream fou=new FileOutputStream("test.properties");//解决中文乱码问题OutputStreamWriter bo=new OutputStreamWriter(fou);p.setProperty("id", "2017");   //添加键值对数据//out 输出流     comments 注释p.store(fou, "this is my new add");bo.close();}


    三.与装饰者模式相关

        1.包含要增强类的对象引用

        2.扩展需要增强的方法

        

public class Demo01 {public static void main(String[] args) throws IOException {//BufferedReader bReader=new BufferedReader(new FileReader(new File("D:\\message.txt")));//String str=null;int num=0;//while((str=bReader.readLine())!=null){//num++;////System.out.println(num+":"+str);//}//将bufferRead的readLine()扩展功能File f=new File("D:\\message.txt");FileReader fr=new FileReader(f);BufferedReader br=new BufferedReader(fr);//先添加行号myBuffer my=new myBuffer(br);//myBuffer mb=new myBuffer(br);String str1=null;while((str1=my.readLine())!=null){System.out.println(str1);}}//装饰者设计模式/*1.包含要增强类的对象引用 *2.扩展需要增强的方法 *  *  */}//提升功能的类 class myBuffer extends BufferedReader{int num=0;public BufferedReader br; //1.包含要增强类的对象引用public myBuffer(BufferedReader in) {super(in);this.br=in;}public String readLine() {String str=null;try {str=br.readLine();if(str!=null){num++;return num+":"+str;}} catch (IOException e) {e.printStackTrace();}return str;}}


     


   
原创粉丝点击