当前位置: 首页 > news >正文

深圳网站建设怎么选择中国宣布取消新冠免费治疗

深圳网站建设怎么选择,中国宣布取消新冠免费治疗,帮诈骗团伙做网站属于诈骗吗,给钱做任务的网站6 特殊操作流 6.1 标注输入输出流 System类中有两个静态的成员变量: public static final InputStream in:标准输入流,通常该流对应于键盘输入或由主机环境或用户指定的另一个输入源public static final PrintStream out:标准输…

6 特殊操作流

6.1 标注输入输出流

  • System类中有两个静态的成员变量:
    • public static final InputStream in:标准输入流,通常该流对应于键盘输入或由主机环境或用户指定的另一个输入源
    • public static final PrintStream out:标准输出流,通常该流对应于显示输出或由主机环境或用户指定的另一个输入源
package test;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;public class Demo {public static void main(String[] args) throws  IOException {
/*        //public static final InputStream in:标准输入流InputStream is = System.in;int by;while((by=is.read()) != -1) {System.out.print((char)by);}//如何把字节流转换为字符流InputStreamReader isr = new InputStreamReader(is);//一次读一行,是字符缓冲输入流的特有方法BufferedReader br  =new BufferedReader(isr);*/BufferedReader br = new BufferedReader(new InputStreamReader(System.in));System.out.println("请输入一个字符串");String line = br.readLine();System.out.println("你输入的字符串:"+line);br.close();}
}

6.2 打印流

  • 打印流分类
    • 字节打印流:PrintStream
    • 字符打印流:PrintWriter
  • 打印流特点
    • 只负责输出数据,不负责读取数据
    • 有自己特有方法
  • 字节打印流
    • PrintStream(String fileName):使用指定的文件名创建新的打印流
    • 使用继承父类的方法写数据,查看时会转码;使用自己特有方法写数据,查看的数据原样输出
package test;import java.io.*;public class Demo {public static void main(String[] args) throws  IOException {//PrintStream(String fileName):使用指定的文件名创建新的打印流PrintStream ps = new PrintStream("E:\\test\\java.txt");/*ps.print(1);ps.print(2);*///12没有换行ps.println(97);ps.println(87);//97//87ps.close();}
}
  • 字符打印流
方法名说明
PrintWriter(String fileName)使用指定的文件名创建一个新的PrintWriter,而不需要自动执行刷新
PrintWriter(Writer out,boolean autoFlush)创建一个新的PrintWriter;out:字符输出流,autoFlush:一个布尔值,如果为true,则println,printf,或format方法将刷新输出缓冲区
package test;import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;public class Demo {public static void main(String[] args) throws IOException {//1,PrintWriter(String fileName)
/*        PrintWriter pw = new PrintWriter("E:\\test\\java.txt");*//*pw.write("hello");pw.write("\r\n");pw.flush();pw.write("hello");pw.write("\r\n");pw.flush();*//**//*hellohello*//*pw.println("hello"); //换行pw.flush();pw.println("hello");pw.flush();*///2,PrintWriter(Writer out,boolean autoFlush)PrintWriter pw = new PrintWriter(new FileWriter("E:\\test\\java.txt",true));pw.println("hello");pw.println("hello"); //构造方法自动刷新了pw.close();}
}

6.3 对象序列化

  • 对象序列化:就是将对象保存到磁盘中,或者在网络中传输对象
    这种机制就是使用一个字节序列表示个对象,该字节序列包含:对象的类型、对象的数据和对象中存储的属性等信息字节序列写到文件之后,相当于文件中持久保存了一个对象的信息
    反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化

  • 要实现序列化和反序列化就要使用对象序列化流和对象反序列化流:

    • 对象序列化流: ObjectOutputStream
    • 对象反序列化流: ObjectlnputStream

6.3.1 对象序列化流

  • 对象序列化流:ObjectOutputStream

  • 将Java对象的原始数据类型和图形写入OutputStream。 可以使用ObjectInputStream读取 (重构)对象。可以通过使用流的文件来实现对象的持久存储。如果流是网络套接字流, 则可以在另一个主机上或另一个进程中重构对象

  • 构造方法

方法名说明
ObjectOutputStream(OutputStream out)创建一个写入指定的OutputStream的ObjectOutputStream
  • 序列化对象的方法
方法名说明
void writeObject(Object obj)将指定的对象写入ObjectOutputStream
  • 注意

  • 一个对象要想被序列化,该对象所属的类必须必须实现Serializable[ˈsɪərɪlaɪzbl]接口

  • Serializable是一个标记接口,实现该接口,不需要重写任何方法

  • 范例:

  • Student类

package test;import java.io.Serializable;
//NotSerializableException:一个对象要想被序列化,该对象所属的类必须必须实现Serializable接口
public class Student implements Serializable { private String name;private int age;public Student() { }public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}
  • 测试类
package test;import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;public class ObjectOutputStreamDemo {public static void main(String[] args) throws IOException {//ObjectOutputStream(OutputStream out) 	创建一个写入指定的OutputStream的ObjectOutputStreamObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("E:\\test\\java.txt"));//创建对象Student s = new Student("小白",10);//void writeObject(Object obj) 	将指定的对象写入ObjectOutputStreamoos.writeObject(s);oos.close();/* sr test.Student蝄8kr<q I ageL namet Ljava/lang/String;xpt 灏忕櫧*/}
}

6.3.2 对象反序列化流

  • 对象反序列化流:ObjectInputStream
  • ObjectInputStream反序列化前先使用ObjectOutputStream编写的原始数据和对象
  • 构造方法
方法名说明
ObjectInputStream(InputStream in)创建从指定InputStream读取的ObjectInputStream
  • 反序列化对象的方法
方法名说明
Object readObject()从ObjectInputStream读取一个对象
  • 范例
package test;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;public class Demo {public static void main(String[] args) throws IOException, ClassNotFoundException {//ObjectInputStream(InputStream in) 	创建从指定InputStream读取的ObjectInputStreamObjectInputStream ois = new ObjectInputStream(new FileInputStream("E:\\test\\java.txt"));//Object readObject() 	从ObjectInputStream读取一个对象Student s = (Student) ois.readObject();;System.out.println(s.getName()+","+s.getAge()); //小白,10ois.close();}
}

6.3.3 注意事项

1、用对象序列化流序列化了一个对象后,假如我们修改了对象所属的类文件,读取数据会不会出问题呢?

  • 会出问题, 抛出InvalidClassException异常

2、如果出问题了,如何解决呢?

  • 给对象所属的类加一 个serialVersionUIDprivate static final long serialVersionUID = 42L;

3、如果一个对象中的某个成员变量的值不想被序列化,又该如何实现呢?

  • 给该成员变量加transient [ˈtrænziənt] 关键字修饰,该关键字标记的成员变量不参与序列化过程:private transient int age; (age不会参加序列化)

6.4 Properties

6.4.1 Properties [ˈprɒpətiz]作为Map集合使用

  • Properties概述:
  • 是一个Map体系的集合
  • Properties可以保存到流或者从流加载
  • 范例:
package test;import javafx.beans.property.Property;import java.util.Properties;
import java.util.Set;public class Demo {public static void main(String[] args) {Properties prop = new Properties();//存储元素prop.put("001","小黑");prop.put("002","小白");prop.put("003","小灰");Set<Object> keySet = prop.keySet();for(Object key:keySet) {Object value = prop.get(key);System.out.println(key+","+value);
//            003,小灰
//            002,小白
//            001,小黑}}
}

6.4.2 Properties特有方法

方法名说明
Object setProperty(String key, String value)设置集合的键和值,都是String类型, 底层调用Hashtable方法 put
String getProperty(String key)使用此属性列表中指定的键搜索属性
Set<String> stringPropertyNames()从该属性列表中返回一个不可修改的键集,其中键及其应的值是字符串
  • 范例:
package test;import javafx.beans.property.Property;import java.util.Properties;
import java.util.Set;public class Demo {public static void main(String[] args) {Properties prop = new Properties();//1,Object setProperty(String key, String value) 	设置集合的键和值,都是String类型, 底层调用Hashtable方法 putprop.setProperty("001","小黑");/*public synchronized Object setProperty(String key, String value) {return put(key, value);}*/prop.setProperty("002","小白");prop.setProperty("003","小灰");/2String getProperty(String key) 	使用此属性列表中指定的键搜索属性System.out.println(prop.getProperty("003")); //小灰System.out.println(prop.getProperty("004")); //null//3,Set<String> stringPropertyNames() 	从该属性列表中返回一个不可修改的键集,其中键及其应的值是字符串Set<String> names = prop.stringPropertyNames();for(String key:names) {
//            System.out.println(key);
//            003
//            002
//            001String value = prop.getProperty(key);System.out.println(key+","+value);
//            003,小灰
//            002,小白
//            001,小黑}}
}

6.4.3 Properties与IO流相结合方法

方法名说明
void load(InputStream inStream)从输入字节流读取属性列表(键和元素对)
void load(Reader reader)从输入字符流读取属性列表(键和元素对)
void store(OutputStream out, String comments)将此属性列表(键和元素对)写入此Properties表中,以适合于使用load(InputStream)方法的格式写入输出字节流
void store(Writer writer, String comments)将此属性列表(键和元索对)写入此Properties表中,以适合使用load(Reader)方法的格式写入输出字符流
  • 范例
package test;import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;public class Demo {public static void main(String[] args) throws IOException{//把集合中的数据保存到文件myStore();//把文件中的数据保存到集合myLood();}private static void myLood() throws IOException{Properties prop = new Properties();FileReader fr = new FileReader("E:\\test\\java.txt");//2,void load(Reader reader)prop.load(fr);fr.close();System.out.println(prop); //{003=小灰, 002=小白, 001=小黑}}private static void myStore() throws IOException {Properties prop = new Properties();prop.setProperty("001", "小黑");prop.setProperty("002", "小白");prop.setProperty("003", "小灰");//4,void store(Writer writer, String comments)FileWriter fw = new FileWriter("E:\\test\\java.txt");prop.store(fw,null);fw.close();}
}
http://www.zhongyajixie.com/news/29986.html

相关文章:

  • 佛冈县住房和城乡建设局网站营销技巧有哪些
  • 不用代码做网站 知乎cps推广接单平台
  • 扬州天达建设集团有限公司网站百度注册公司网站
  • SFDA的网站建设是什么沈阳关键词seo
  • 松江品划做企业网站互联网公司排名
  • 网站标题字数网址提交百度
  • wordpress文章 插件seo优化报价公司
  • ip地址直接访问网站最近新闻有哪些
  • wordpress 做的网站seo技术软件
  • 影楼网站制作网站建设费用
  • 营销网站搭建建议app拉新平台有哪些
  • wordpress手机隐藏菜单优化网站排名解析推广
  • 私服网站建设互联网营销专家
  • 可以做专利聚类分析的免费网站兰州模板网站seo价格
  • 自由策划企业网站管理系统破解版谷歌外贸网站
  • 做多站发布信息的网站开封seo公司
  • wordpress php 文件上传seo搜索引擎优化培训班
  • 长沙市做网站公司排名优化设计卷子答案
  • 中国企业报集团官网优化大师电脑版下载
  • 网站建设-纵横网络微信如何引流推广精准加人
  • 政府网站建设历史广告联盟怎么做
  • 企业网站做静态网站还是网站群发推广软件
  • 白洋湾做网站公司百度指数查询平台
  • 订阅号可以做网站链接吗打广告在哪里打最有效
  • 青岛网站优化多少钱石家庄市人民政府官网
  • ppt页面设计模板seo培训学什么
  • 宣传网站制作独立站seo搜索优化
  • 如何做网站首页关键词优化网站关键词排名软件
  • 做导航网站怎么赚钱福州百度关键词排名
  • 网站开发人员如何写工作日志下载百度语音导航地图安装