来黑马程序员学习的第十天

  今天呢我想分享在黑马程序员学习第十天的学习总结.

  今天我学习了IO流,字节输入输出流和字符输入输出流,做了几个经典的案例(用字节流复制文件复制视频,用字符流复制单级文件夹和多级文件夹,把集合的数据写入文件,把文件中的数据读出集合)这些是我自学的,另外还有讲师的数组作业题目是:

一: 分析以下需求,并用代码实现
1.键盘录入6个int类型的数据存数数组arr中
2.将arr数组中的内容反转
3.将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
4.最后将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
5.打印最终的数组(实现了1-4步之后的数组)
6.如:用户输入的6个int数字为[1,2,3,4,5,6],最后输出的结果为[6, 5, 4, 1, 2, 3]

二: 分析以下需求,并用代码实现
1.键盘录入10个整数存入数组中
2.定义一个方法将奇数放在数组的左侧,偶数放在数组的右侧
3.定义一个方法打印原数组和处理后的数组
4.定义一个方法传入一个int类型数组,输出这个数组中只出现一次的数字及个数

首先先从我自学的讲起吧,我觉得IO流的重点是熟悉如何输入输出数据:

字节流:因为InputSteam是抽象类,所以用它的子类FileInputSteam,OutputSteam是抽象类,所以用它的子类FileOutputSteam  

  FileInputSteam fis = new FileInputSteam(filename);

  FileOutSteam fos = new FileOutSteam(filename);

  byte[] bys = new byte[1024];

  int len;

  while((len=fis.read(bys))!=-1){ fos.write(bys,0,len)} fos.close(); fis.close();

字符流:Reader是抽象类,所以用子类InputSteamReader,Writer是抽象类所以用子类OutputSteamWriter

InputStreamReader 是字节流到字符流的桥梁 可以指定编码字符集;
OutputStreamWriter 是字符流到字节流的桥梁 可以指定编码字符集;
提供了简化字符流:FileReader和FileWriter 但是他们的编码集都默认,如果指定编码集还是需要用上面两个

  InputSteamReader isr = new InputSteamReader(filename);

  OutputSreamWriter osw =new OutputStreamWriter(filename);

      char[] chs=new char[1024];

      int len;

      while((len=isr.read(chs))!=null){osw.write(chs,0,len);} isr.close(); osw.close;

缓冲流:(字节缓冲输入流)BufferedInputStream bis = new BufferedInputSteam(new FileInputStream(filename));

字符输入缓冲流:BufferedReader br = new BufferedReader(new FileReader(filename)); 在这里有一个方法是 public Stream<String> readLine() 一次读取一行数据

这里注意的是缓冲流的效率比较高;

 好了一天的学习总结就在这里了.下面来说数组作业;

 

数组作业对于我们这些小白来说确实有点难像第一题我们的实力就能做到将数组反转.想要做出来需要对数组的理解够透彻

将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
.最后将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换

这两到需要做 判断角标是否为奇偶数,还有一个条件需要做的是角标一定要小于arr.leng-1 不然arr[i+2]会出现索引越界异常

做完之后再判断数组的长度是否为奇数,做最后一个奇数的处理 如果是奇数arr[1]和arr[arr.leng-2]交换,如果是偶数arr[1]和arr[arr.leng-1]交换;

 

再来看第二题前面三问还可以做出来第四问有难度

<4.定义一个方法传入一个int类型数组,输出这个数组中只出现一次的数字及个数>

这问我当时就想到了for循环嵌套,依次循环这个数组, 相当于是把数组的一个元素拿出来和数组的其他元素相比较,定义了一个计数器(count)初始值为1,如果找到元素内容一样,却角标不一样的元素 count++;最后在输出count==1的数即可;


学习java是一个既漫长又有趣的中间还带一点点苦涩的味道的事,昨天和我们班上的哥们聊了一点,他说他想放弃了,太累了自闭了,不想学了,还说去外面找点其他的事做很好很轻松,然后我就问他:你是富二代吗?他笑了笑说:不是,然后我就说:不是的话不努力谁会眷顾你? 如果你想放弃的话你现在可以趁早,如果到后面的阶段了,你会很难受,想走,却是半途而废,如果继续,又觉得自己已经坚持不下去了,然后我就走出教室了.在这里我还喜欢一句话:种一颗树最佳的时间就是十年前,其次就是现在.希望能坚持吧  加油!!!

 

posted on 2019-07-02 14:15  清淡中有点甜  阅读(218)  评论(0编辑  收藏  举报

导航