zoukankan      html  css  js  c++  java
  • java缓冲流;对象流 ; 文件流;数组流;数据流;转换流;打印流;Properties类的使用

    I/O 流

    File  对象--内存中  映射关系 通过file对象操作硬盘中的文件或文件夹

        文件夹的遍历  文件夹的删除-->递归;

    操作文件中的内容   

    文件流(低级流):字节型:FileInputStream  FileOutputStream

             字符型:FileReader  FileWriter

    缓冲流(包装流)  将低级流包装起来

      在流管道内增加缓冲的数据

      让我们使用流读取的文字更加的流畅

      高级流-->创建通过低级流

    缓存流 :字节型:BufferedInputStream BufferedOutputStream

         字符型:BufferedReader  BufferedWriter

    BufferedInputStream 构建方式 使用低级流构建作为参数

      基本使用与低级流的方法完全一致

      read() skip() available() close()

    BufferedOutputStream 构建方式 使用低级流构建;没有boolean类型的参数

        基本使用与低级流的方法完全一致 

      write() flush() close()

    BufferedReader

      String value=readLine();

    BufferedWriter

      write(String);

      newLine();

     打印流  InputStreamReader PrintWriter

    字符串流   StringReader  StringWriter

    *对象流  对象的序列化/反序列化

    1.为什么要有文件?

      文件永久性的保存信息  将很多的数据直接存入文件--数据持久化

    2.如果按照以行为单位新信息

      好处在于每一行记录的信息都是相关的

      信息我们可以读取处理 直接看懂文件

      不好在于第一不安全 直接看懂

      不好在于只能记录String信息 不能记录一些动作(方法)

    3.读取处理的信息String -->Person

    4.如果能将对象拆分成字节码 直接写入文件

       将对象直接存入文件中--对象流

    对象的序列化:将一个完整的对象 拆分成字节碎片 记录在文件中

    对象的反序列化:将文件中记录的对象随便 反过来组合成一个完整的对象

    如果想要将对象序列化到文件中

      需要让对象所属的类实现Serializable接口

      是一个示意性接口

      同时为了让对象可以反序列化,需要让对象中多存在一个属性

        private static long serialVersionUID=任意L;

    如果想要将对象反序列化

      需要给对象提供一个序列化的版本号 

    BufferedInputStream,BufferedOutputStream
    import java.io.*;
    public class TestMain{
    	public static void main(String[] args){
    		try{
    		File f=new File("D:\ddd\a.txt");
    		FileInputStream fi=new FileInputStream(f);
    		BufferedInputStream bi=new BufferedInputStream(fi);//缓冲
    		bi.available();
    		
    		FileOutputStream fo=new FileOutputStream(f);
    		BufferedOutputStream bo=new BufferedOutputStream(fo);
    		bo.available();
    		}catch(IOException e){
    			e.printStackTrace();
    		}
    	}
    }
    BufferedWriter
    import java.io.*;
    public class TestMain{
    	public static void main(String[] args){
    		try{
    			File f=new File("D:\ddd\a.txt");
    			FileReader fr=new FileReader(f);//字符输入流
    			BufferedReader br=new BufferedReader(fr);
    			String values=br.readLine();//读取文件中的一行信息
    			while(values!=null){
    				System.out.println(values);
    				values=br.readLine();
    			}
    			/*int code=br.read();
    			while(code!=-1){
    				System.out.print((char)code);
    				code=br.read();
    			}	
    			*/
    		}catch(IOException e){
    			e.printStackTrace();
    		}
    	}
    }
    

      登录

    import java.io.*;
    public class TestMain{
    	public String login(String filename,String name,String password){
    		try{			
    			FileReader fr=new FileReader(filename);
    			BufferedReader br=new BufferedReader(fr);
    			String np=br.readLine();
    			while(np!=null){
    				if(np.split("-")[0].equals(name)){
    					if(np.split("-")[1].equals(password)){						
    						return "登录成功";
    					}
    					break;
    				}
    				np=br.readLine();
    				
    			}			
    		}catch(IOException e){
    			e.printStackTrace();
    		}
    		return "账号或密码错误";
    	}
    	public static void main(String[] args){
    		TestMain tm=new TestMain();
    		String rs=tm.login("D:\ddd\a.txt","xiaohua","12345");
    		System.out.println(rs);
    	}
    }
    

     

    BufferedWriter
    import java.io.*;
    public class TestMain{
    	
    	public static void main(String[] args){
    		try{
    			BufferedWriter bw=new BufferedWriter(new FileWriter("D:\ddd\a.txt",true));
    			bw.newLine();
    			bw.write("Java-666");
    			bw.flush();
    		}catch(IOException e){
    			e.printStackTrace();
    		}
    	}
    }
    

     

    import java.io.*;
    public class TestMain implements Serializable{
    	private long serialVersionUID=6807772913284504510L;
    	private String name;
    	private int age;
    	public TestMain(){
    	}
    	public TestMain(String name,int age){
    		this.name=name;
    		this.age=age;
    	}
    	public String getName(){
    		return this.name;
    	}
    	public int getAge(){
    		return this.age;
    	}
    	public static void main(String[] args){
    		/*
    		TestMain tm=new TestMain("xixi",30);
    		try{//将对象记录在文件中;
    		FileOutputStream fos=new FileOutputStream("D:\ddd\a.txt");
    		ObjectOutputStream oos=new ObjectOutputStream(fos);//对象输出流
    		oos.writeObject(tm);
    		oos.flush();
    		
    		}catch(IOException e){
    			e.printStackTrace();
    		}
    		*/
    		
    		try{//对象反序列化 
    		FileInputStream fis=new FileInputStream("D:\ddd\a.txt");
    		ObjectInputStream ois=new ObjectInputStream(fis);//对象输入流
    		TestMain p=(TestMain)ois.readObject();			
    		System.out.println(p.getName());
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    		
    		
    	}
    }
    

     ---------------------------------------------------------------------------------------

    Properties类的使用;java.util;使用方式像是map集合 value=getProperty(key)方法

    读取的信息是文件  文件的后缀名.properties  文件里面key=value

    package test0607;
    import java.util.*;
    import java.io.*;
    public class TestMain{
    	public static void main(String[] args){		
    		try{
    			Properties p=new Properties();
    			p.load(new FileReader("test0607\a.properties"));
    			/*
    			Enumeration en=p.propertyNames();
    			while(en.hasMoreElements()){
    				String key=(String)en.nextElement();
    				String value=p.getProperty(key);
    				System.out.println(value);
    			}
    			*/
    			String v=p.getProperty("name");
    			System.out.println(v);
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    		
    	}
    }
    

      

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    增删改
    创建数据库
    数据库的列类型
    数据库
    Python os.ttyname() 方法
    Python os.tmpnam() 方法
    Python os.tmpfile() 方法
    Python os.tempnam() 方法
    Python os.tcsetpgrp() 方法
    LR运行负载测试场景-笔记
  • 原文地址:https://www.cnblogs.com/canglongdao/p/13010057.html
Copyright © 2011-2022 走看看