2018.4.10-IO流部分

本文详细介绍了Java中的IO流操作,包括DataInputStream和DataOutputStream的基本使用方法,如何进行数据的读写,以及特殊情况下如何处理编码问题。同时,还探讨了ByteArrayInputStream和ByteArrayOutputStream在处理数组时的应用。

DataInputSream和DataOutputSream

//出现原因:流写入只写入最后8位,为了操作方便,其产生

DataOutputStream dos = new DataOutputStream(new FileOutputStream(""));//写入流

//示例方法
dos.writeInt(234);//写入一个整数
dos.writeBoolean(true);//写入一个Boolean类型值

dos.writeDouble(9887.543);//写入一个浮点数类型
dos.writeUTF("");//用其写的必须要用readUTF读出来

DataInputStream dis = new DataInputStream(new FileInputStream(""));//读取流
 
  int num = dis.readInt();
  boolean b = dis.readBoolean();
  double d = dis.readDouble();

ByteArrayInputStream ByteArrayOutputStream
//主要是为了用操作流的思想操作数组
//因为没有调用底层,不需要close


ByteArrayInputStream bis = new ByteArrayInputStream("asdf".getBytes())

ByteArrayOutputStream bos = new ByteArrayOutputStream();
bos.size()//获取数组中长度
bos.toString()//将数组中的元素以字符串的方式打印
bos.writeTo(out);//将数组中元素写入一个流中

//而CharArrayReader,CharArrayWriter,StringReader,StringWriter操作方式与其基本相同

EncodeStream
//常见编码表 GBK:两个字节表示一个字符

                    UTF-8:可用三个字节表示一个字符
                    
//java存储文件时,底层需要根据编码表将其转换成01存储到硬盘中
        

OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(""),"code");//字符流转换成为字节流桥梁
InputStreamReader isr = new InputStreamReader(new FileInputStream(""),"code");

解码编码
编码:字符串转换成为数组
String s = "你好";
byte[] b1 = s.getBytes("GBK");
System.out.println(Arrays.toString(b1));
 

解码:字符数组转换成为字符串

String s1= new String(b1,"GBK");

编码用GBK时,可用iso8859-1解码,再用iso8859-1编码,然后用GBK解码,可得到原样信息,因为iso8859-1不识别中文,会返回原样编码,(应用领域:cookie)//但不可以用utf-8因为其也识别中文,当其解码失败时,会到未知编码区,返回相似编码
String s = "你好";
  
  byte[] b1 = s.getBytes("GBK");
  
  System.out.println(Arrays.toString(b1));
 
  String s1= new String(b1,"iso8859-1");
  System.out.println("s1="+s1);
  
  byte[] b2 = s1.getBytes("iso8859-1");
  System.out.println(Arrays.toString(b2));
  
  String s2 = new String(b2,"gbk");
  System.out.println("s2="+s2);

特殊情况-联通
//当文件中联通开头时,会发现出现乱码,因为这是联通符合一种特殊情况,满足110开头的utf-8编码,所以自动以utf-8去解码
//需要解决这问题,只需要在联通前加一个汉字即可。



内容概要:本文介绍了ENVI Deep Learning V1.0的操作教程,重点讲解了如何利用ENVI软件进行深度学习模型的训练与应用,以实现遥感图像中特定目标(如集装箱)的自动提取。教程涵盖了从数据准备、标签图像创建、模型初始化与训练,到执行分类及结果优化的完整程,并介绍了精度评价与通过ENVI Modeler实现一键化建模的方法。系统基于TensorFlow框架,采用ENVINet5(U-Net变体)架构,支持通过点、线、面ROI或分类图生成标签数据,适用于多/高光谱影像的单一类别特征提取。; 适合人群:具备遥感图像处理基础,熟悉ENVI软件操作,从事地理信息、测绘、环境监测等相关领域的技术人员或研究人员,尤其是希望将深度学习技术应用于遥感目标识别的初学者与实践者。; 使用场景及目标:①在遥感影像中自动识别和提取特定地物目标(如车辆、建筑、道路、集装箱等);②掌握ENVI环境下深度学习模型的训练程与关键参数设置(如Patch Size、Epochs、Class Weight等);③通过模型调优与结果反馈提升分类精度,实现高效自动化信息提取。; 阅读建议:建议结合实际遥感项目边学边练,重点关注标签数据制作、模型参数配置与结果后处理环节,充分利用ENVI Modeler进行自动化建模与参数优化,同时注意软硬件环境(特别是NVIDIA GPU)的配置要求以保障训练效率。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值