zoukankan      html  css  js  c++  java
  • java中一些知识点

    java中一些知识点

    注:

     Java Platform SE 8

     [Android API](file:///C:/Users/silen/AppData/Local/Android/sdk/docs/guide/index.html)

    1.对象输入输出流

    2.涉及到流对象一定注意异常处理(捕捉并抛出异常),否则报错。两种方式:

      方式一:try...catch;

      方式二:throw FileNotFoundException/IOException/ClassNotFoundException;

         若含有多种异常,可以采用throw Exception;

    例:

    //方式二
    public Object InputObject() throws Exception{
    	Object feature = new Object();
    	File file = new File("sdcard/detectmoney/database", "data.txt");
    	//文件输出流
    	FileInputStream fin = new FileInputStream(file);
    	//对象输出流
    	ObjectInputStream obin = new ObjectInputStream(fin);
    	//保存对象到文件
    	feature = obin.readObject();
    	obin.close();
    
    	return feature;
    }
    
    
    //方式一
    public Object InputObject(){
    	Object feature = new Object();
    	File file = new File("sdcard/detectmoney/database", "data.txt");
    	try{
    		//文件输出流
    		FileInputStream fin = new FileInputStream(file);
    		//对象输出流
    		ObjectInputStream obin = new ObjectInputStream(fin);
    		//保存对象到文件
    		feature = obin.readObject();
    		obin.close();
    	}catch(FileNotFoundException e){
    		e.printStackTrace();
    	} catch (IOException e) {
    		e.printStackTrace();
    	} catch (ClassNotFoundException e) {
    		e.printStackTrace();
    	}
    
    	return feature;
    }
    

    3.读取保存在文件中对象:

     (1) readObject()位于Java.io.ObjectInputStream。声明为:

    public final Object readObject();
    

      由此可看出返回值为Object类型。

     (2)为了提取存储的信息,需要读取得到Object对象后转化为存储前的对象类型。

    //强制转化
    Feature feature = (Feature) new OutputFeature().InputObject();
    

    错误:

    Feature[] feature = (Feature[]) object;//Object[] object是存储feature对象的数组
    

    错因:Java.lang.ClassCastException,即类转化错误,无法由Object[]转化到Feature[]

    解决方法:单个转化

    Feature feature = (Feature) object[0];
    //若要进行整个数组转化可利用循环逐个元素对应转化
    

     (3)如果A程序需要读取B程序中生成的对象输出流文件时必须导入B程序中相应的类,不可重新定义类。导入相应类时注意其包名不可变,即带包导入。如果改变包名就变成了新建类,与原先类是有差别的,无法读取对象(因为对象存储时是包含相应类信息的)。

    4.数组输出方法:

    Arrays.toString(数组)
    Arrays.deepToString()
    

    5.String转化为char[]:

    str.toCharArray();
    

    6.提示框设置:

    Toast.makeText(context, str, time).show();
    //context:当前的上下文环境。可用getApplicationContext()或this
    //str:要显示的字符串。可以时自定义字符串,也可是R.string中字符串ID
    //time:显示的时间长短。Toast默认的有两个LENGTH_LONG(长,3500ms)和LENGTH_SHORT(短,2000ms),也可以使用毫秒如2000ms
    

    7.输出程序执行时间(time)

    long start=System.currentTimeMillis();
    long time = System.currentTimeMillis() - start;
    //Log.v/d/i/w/e属于在控制台输出
    //若要在手机界面输出可用TextView或EditText或者Toast
    

    8.判断文件存在与否

     (1)每次执行File f =new File(文件目录); 时,如果文件不存在,则都会自动创建文件;若存在则不会创建。

     (2)对比(1)执行File f =new File(目录);时,如果目录不存在则不会创建目录。

     (3)输出流语句FileOutputStream fout = new FileOutputStream(file); 会创建新空白文件,故如果要读取原来文件中信息,必须放在该句之前,否则会覆盖原来的文件,导致原来的文件信息缺失。

     (4)对比(3):FileInputStream fin = new FileInputStream(file);则不会创建新文件

     故判断某文件或目录是否存在,不存在则创建用以下写法:

    //文件:
    if(!new File(文件目录).exists()) f = new File(文件目录);  //因为匿名对象并不实例化
    
    //目录:
    File f =new File(目录);
    if(!f.exists()) f.mkdirs();   //注意用mkdirs(),尽量不用mkdir()。因为前者可创建多级目录
  • 相关阅读:
    c语言 423输出直角在右上角的等腰直角三角形
    R语言中aggregate函数进行整合数据
    c语言 425输出向下的金字塔
    C语言 423 输出直角在左上角的等腰直角三角形
    c语言 422 显示出一个横向较长的长方形
    R语言中subset函数
    R语言中for、while、if else、switch语句
    c语言 424 输出金字塔性状
    R语言中apply函数
    WinCE文件基本操作
  • 原文地址:https://www.cnblogs.com/silentteen/p/6535279.html
Copyright © 2011-2022 走看看