黑马程序员___IO流小结

 ----------- android培训、java培训、java学习型技术博客、期待与您交流! ---------

 


1.I/O概述

 

1.1.I/O系统

 

顾名思义:输入/输出系统.

 

I/O之所以公认最重要,就是因为作为输入输出,就是输入输出的源端和想要与之通信的接收端(对应Input,Output)存在各种形式.而且还需要考虑各种不同的数据类型作为源和接收端之间的数据能否互通问题.

 

 

 

2.准备工作-File类

 

2.1.File类的概念

 

一个实用类库工具,用于帮助处理文件内部数据外的文件,文件夹,路径等属性.

 

其实就是将文件系统中的文件和文件夹封装成了对象.提供了更多的属性和行为可以对这些文件和文件夹进行操作.这些是流对象办不到的,因为流只操作数据.

 

2.2.File类的常用构造和方法

 

File类

 

 

 

 

 

 

 

(更新下,今天用到了一个相当常用,当时学习File没有写进去,罪过)

 

重命名

 

boolean f1.renameTo(Filedest);//可以实现移动的效果.剪切+重命名.

 

注意:

 

这里的renameTo()方法,改变了需要改变的文件夹后,他的f1封装的还是以前未改的路径,就不是在指向改后的文件或文件夹了!!!

 

我在这里栽了很蛋疼的跟头.谨记.!!

 

2.3.案例

 

这里最经典就是用递归思想操作一个目标文件下,包括子文件的所有文件及文件夹.

 

我的代码:

 

[java] view plaincopy

 

 

 

1 /* 

 

2  * 需求: 

 

3  * 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt 

 

4  *  

 

5  * 思路: 

 

6  * 封装原始与目的路径对象,利用递归的方式获取原始目录下java文件路径对象. 

 

7  * 然后每当获取到java文件路径对象,通过IO流中的字符流在目的路径创建java文件对应txt文件进行复制. 

 

8  *  

 

9  * 步骤: 

 

10  * 1.键盘录入初始目录路径,目标目录路径,并进行封装. 

 

11  * 2.自定义复制java文件方法,按需求,复制.java文件并改后缀名为.txt. 

 

12  * 3.自定义遍历方法,利用递归的方式,获取初始目录下所有java文件路径对象. 

 

13  * 4.每当获取到java文件路径对象,调用自定义复制方法,进行复制. 

 

14  * 5.反馈操作是否成功. 

 

15  * */  

 

16   

 

17 public class Test9 {  

 

18     public static void main(String[] args){  

 

19         Scanner in =  new Scanner(System.in);  

 

20         System.out.println("您将进行如下操作:\n\t将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt\n请输入初始路径:\t(例如:D:/itheima/javaCode)");  

 

21         String fromStr=in.nextLine();  

 

22         System.out.println("请输入目标路径:\t(例如:E:/itheima/txtCode)");  

 

23         String targetStr=in.nextLine();  

 

24         //封装初始路径,目标路径.  

 

25         File from=new File(fromStr);  

 

26         File target=new File(targetStr);  

 

27         //判断目标路径是否存在,否则创建.  

 

28         if (!target.exists()) {  

 

29             System.out.println("目标路径不存在,自动创建.");  

 

30             target.mkdirs();  

 

31         }  

 

32         //调用方法,复制重命名文件.  

 

33         copyAll(from, target);  

 

34         System.out.println("拷贝并重命名操作成功!");  

 

35     }  

 

36       

 

37     //定义遍历方法,用递归方式遍历目录下所有java文件,并调用自定义复制方法进行复制.  

 

38     private static void copyAll(File from,File target){  

 

39         File[] fileList=from.listFiles();  

 

40         for(File temp : fileList){  

 

41             if(temp.isDirectory()){//如果该路径对象是文件夹,则递归.  

 

42                 File targetTemp=new File(target,temp.getName());  

 

43                 targetTemp.mkdirs();  

 

44                 copyAll(temp,targetTemp);  

 

45             }else{  

 

46                 if(temp.getName().endsWith(".java")){//如果该路径对象是文件,判断是否为java文件,是则调用方法,自定义复制.  

 

47                     try {  

 

48                         myCopy(temp,target);  

 

49                     } catch (IOException e) {  

 

50                         System.exit(0);  

 

51                     }  

 

52                 }  

 

53             }  

 

54         }  

 

55     }  

 

56       

 

57     //定义复制java文件方法,包括将文件后缀改为txt操作.  

 

58     private static void myCopy(File from,File target) throws IOException {  

 

59         File targetFile=new File(target,from.getName().replace(".java", ".txt"));//修改复制后文件后缀为txt.  

 

60         BufferedReader br=null;  

 

61         BufferedWriter bw=null;  

 

62         try {  

 

63             br=new BufferedReader(new FileReader(from));  

 

64             bw=new BufferedWriter(new FileWriter(targetFile));  

 

65             String temp=null;  

 

66             while((temp=br.readLine())!=null) {//运用字符缓冲流,复制java文件进入目标路径下同名txt文件.  

 

67                 bw.write(temp);  

 

68                 bw.newLine();  

 

69             }  

 

70         }  

 

71         catch (IOException e) {  

 

72             throw e;  

 

73         }  

 

74         finally{//关闭资源.  

 

75             if(bw!=null)  

 

76                 try {  

 

77                     bw.close();  

 

78                 } catch (IOException e) {  

 

79                     throw e;  

 

80                 }  

 

81                 finally{  

 

82                     if(br!=null)  

 

83                     try {  

 

84                         br.close();  

 

85                     } catch (IOException e) {  

 

86                         throw e;  

 

87                     }  

 

88                 }  

 

89         }  

 

90     }  

 

91 }  

 

 

 

 

 

3.IO流体系

 

3.1.IO流分类

 

流的概念:可以理解数据的流动,就是一个数据流.IO流最终要以对象来体现.对象都存在IO包中.

 

流的分类两种依据

 

处理方式不同:分为输入流(读)和输出流(写).

 

处理的数据不同:分为字节流和字符流.(下面是四大基类)

 

字节流:InputStream  OutputStream

 

字符流:Reader  Writer

 

字节流:

 

处理字节数据的流对象。设备上的数据无论是图片或者dvd,文字,它们都以二进制存储的。二进制的最终都是以一个8位为数据单元进行体现,所以计算机中的最小数据单元就是字节。意味着,字节流可以处理设备上的所有数据,所以字节流一样可以处理字符数据。

 

字符流:

 

因为字符每个国家都不一样,所以涉及到了字符编码问题,那么GBK编码的中文用unicode编码解析是有问题的,所以需要获取中文字节数据的同时+ 指定的编码表才可以解析正确数据。为了方便于文字的解析,所以将字节流和编码表封装成对象,这个对象就是字符流。只要操作字符数据,优先考虑使用字符流体系。

 

3.2.字符流:

 

Reader:用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()。

 

|---BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。

 

|---InputStreamReader:是字节流通向字符流的桥梁:它使用指定的字符集读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。

 

|---FileReader:用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要自己指定这些值,可以先在 FileInputStream 上构造一个 InputStreamReader。

 

Writer:写入字符流的抽象类。子类必须实现的方法仅有 write(char[], int, int)、flush() 和 close()。

 

|---BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

 

|---OutputStreamWriter:是字符流通向字节流的桥梁:可使用指定的字符集将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。

 

|---FileWriter:用来写入字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是可接受的。要自己指定这些值,可以先在 FileOutputStream 上构造一个 OutputStreamWriter。

 

|---PrintWriter:字符打印流.

 

3.3.字节流

 

InputStream:是表示字节输入流的所有类的超类。

 

|--- FileInputStream:从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境。FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。

 

|--- BufferedInputStream:该类实现缓冲的字节输入流。

 

|--- ObjectInputStream:用于序列化的操作流.将对象存入字节文件中进行存储或者传输.

 

|--- PipedInputStream:管道流.

 

OutputStream:此抽象类是表示输出字节流的所有类的超类。

 

|--- FileOutputStream:文件输出流是用于将数据写入File 或 FileDescriptor 的输出流。

 

|--- FilterOutputStream:此类是过滤输出流的所有类的超类。

 

|--- BufferedOutputStream:该类实现缓冲的输出流。

 

|--- PrintStream:字节打印流.

 

|--- ObjectOutputStream:用于反序列化的操作流.将存入文件中的对象数据读取出来获得该对象实例.

 

|--- PipedOutputStream:管道输出流.

 

3.4.流的操作规律:

 

1,明确源和目的。

 

数据源:就是需要读取,可以使用两个体系:InputStream、Reader;

 

数据汇:就是需要写入,可以使用两个体系:OutputStream、Writer;

 

2,操作的数据是否是纯文本数据?

 

如果是:数据源:Reader

 

数据汇:Writer

 

如果不是:数据源:InputStream

 

数据汇:OutputStream

 

3,虽然确定了一个体系,但是该体系中有太多的对象,到底用哪个呢?

 

明确操作的数据设备。

 

数据源对应的设备:硬盘(File),内存(数组),键盘(System.in)

 

数据汇对应的设备:硬盘(File),内存(数组),控制台(System.out)。

 

4,需要在基本操作上附加其他功能吗?比如缓冲。

 

如果需要就进行装饰。

 

 

 

4.缓冲区(或者叫高效流)

 

4.1.理解原理

 

缓冲区其实就是底层用数组,将需要读取的数据进行缓存,当达到一定量后进行写入或者读取.

 

说白了就是读一大片,写一大片.

 

4.2.模拟自定义BufferedReader

 

(BufferedInputStream等其他高效流类似)

 

我的代码:

 

[java] view plaincopy

 

 

 

92 /* 

 

93 需求: 

 

94 利用装饰设计模式,模仿jvm底层实现BufferedReader或者BufferedWriter的方式,自定义读写缓冲区. 

 

95 思路: 

 

96 缓冲区其实就是对默认的字符输入输出流(FileReader和FileWriter)字节输入输出流进行功能修饰. 

 

97 用到了装饰设计模式. 

 

98 步骤: 

 

99 1.自定义方法,参数列表为需要的输入或者输出流. 

 

100 2.将作为参数传递的输入输出流Read或者Writer方法进行缓冲区功能性加强. 

 

101 3.封装自定义方法类.作为自定义缓冲区类. 

 

102 */  

 

103   

 

104 import java.io.*;  

 

105   

 

106 class MyBufferedReader{  

 

107   

 

108     //为了让整个类都能调用fr的方法进行装饰.  

 

109     private FileReader fr;  

 

110   

 

111     MyBufferedReader(FileReader fr){//让该类一旦实例化,必然存在一个FileReader对象.  

 

112         this.fr = fr;  

 

113     }  

 

114       

 

115     //定义读取一行的方法.  

 

116     public String readLine()throws IOException{  

 

117         int ch = 0;  

 

118         StringBuilder line=new StringBuilder();  

 

119         while((ch=fr.read())!=-1){  

 

120             if (ch=='\r'){  

 

121                 if ((ch=fr.read())=='\n'){//同时遇到  

 

122                     return line.toString();  

 

123                 }else{  

 

124     //              line.append('\r');  //如果单单遇到\r而不是\r\n,就把\r放进读取的字符串中.      

 

125                 }  

 

126             }  

 

127             line.append((char)ch);  

 

128         }  

 

129         if (line.length()!=0)//当读到结尾,line中还存在数据的话,就返回这些数据.  

 

130             return line.toString();  

 

131         return null;  

 

132     }  

 

133   

 

134     //定义关闭资源方法.  

 

135     public void close()throws IOException{  

 

136         fr.close();  

 

137     }  

 

138 }  

 

139   

 

140 class MyBufferedReaderTest  

 

141 {  

 

142     public static void main(String[] args)throws IOException{  

 

143         MyBufferedReader mbr = new MyBufferedReader(new FileReader("abc.txt"));  

 

144         String line = null;  

 

145         while((line=mbr.readLine())!=null){  

 

146             System.out.println(line);  

 

147         }  

 

148         mbr.close();  

 

149     }  

 

150 }  

 

4.3.注意:

 

字符流的缓冲流中提供了readLine()和newLine()方法.

 

而字节流的缓冲流中没有提供.需要注意.

 

 

 

5.转换流

 

5.1.转换流概念

 

转换流特有功能:转换流可以将字节转成字符,原因在于,将获取到的字节通过查编码表获取到指定对应字符。

 

转换流最重要的内容就是:字节流 + 编码表 --->字符流.事实上,没有转换流,就没有字符流。

 

 

 

InputStreamReader----------->底层为字节流

 

|--FileReader------------------->我们应用为字符流

 

OutputStreamWriter---------->底层为字节流

 

|--FileWrier--------------------->我们应用为字符流

 

所以,想要操作文本文件,必须要进行编码转换,而编码转换动作转换流都完成了.所以操作文件的流对象只要继承自转换流就可以读取一个字符了.但是子类有一个局限性,就是子类中使用的编码是固定的,是本机默认的编码表,对于简体中文版的系统默认码表是GBK。

 

FileReaderfr = new FileReader("a.txt");    等同于    InputStreamReaderisr = new InputStreamReader(newFileInputStream("a.txt"),"gbk");

 

如果仅仅使用平台默认码表,就可以直接使用:FileReader fr = new FileReader("a.txt"); 

 

如果需要制定码表,必须用转换流.

 

转换流 = 字节流+编码表.

 

转换流的子类File = 字节流 + 默认编码表(GBK).

 

5.2.代码实例:

 

[java] view plaincopy

 

 

 

151   

 

[java] view plaincopy

 

 

 

152 案例:  

 

153         //键盘录入数据  

 

154         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  

 

155         BufferddWriter bw = new BufferedWriter(new FileWriter("a.txt"));  

 

156   

 

157         String line = null  

 

158         while((line=br.readLine())!=null)  

 

159         {  

 

160             if("over".equals(line))  

 

161             {  

 

162                 break;  

 

163             }  

 

164   

 

165             bw.write(line);  

 

166             bw.newLine();  

 

167             bw.flush();  

 

168         }  

 

169   

 

170         bw.close();  

 

171         br.close();  

 

172   

 

173         //把文本文件的数据通过流对象在控制台显示  

 

174         BufferedReader br = new BufferedReader(new FileReader("a.txt"));  

 

175         BufferddWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));  

 

176   

 

177         String line = null  

 

178         while((line=br.readLine())!=null)  

 

179         {  

 

180             bw.write(line);  

 

181             bw.newLine();  

 

182             bw.flush();  

 

183         }  

 

184   

 

185         bw.close();  

 

186         br.close();  

 

 

 

6.打印流

 

6.1.打印流概念:打印流是写数据的.

 

6.2.特点:

 

A:可以写任意数据类型的数据

 

B:如果启动了自动刷新,能自动刷新,还会换行。println()
C:可以直接往文件写数据

 

注意:看构造方法,一个流对象的构造中如果同时有String和File的构造参数,那么该流对象就可以读写文件。

 

6.3.用打印流改进复制文本文件的操作(PrintStream可应用于二进制文件)

 

[java] view plaincopy

 

 

 

187 //数据源:  

 

188     //c:\\a.txt  

 

189 //目的地:  

 

190     //d:\\b.txt  

 

191         BufferedReader br = new BufferedReader(new FileReader("c:\\a.txt"));  

 

192         PrintWriter pw = new PrintWriter(new FileWriter("d:\\b.txt"),true);  

 

193   

 

194         String line = null;  

 

195         while((line=br.readLine())!=null)  

 

196         {  

 

197             pw.println(line);  

 

198         }  

 

199   

 

200         pw.close();  

 

201         br.close();  

 

 

 

7.字符编码

 

7.1.编码表:

 

就是字符和对应的数据组成的一张表。7.2.常见的编码表:

 

ASCII
ISO-8859-1
GBK
GB2310
GB18030
UTF-8
BIG57.3.转换流中的编码问题

 

A:字符流 = 字节流+编码表
B:通过转换流写入数据,指定为UTF-8编码,并通过UTF-8编码读取。

 

8.存储程序对象信息.

 

8.1.通过Properties,序列化存储.

 

Properties:

 

通过键值对的形式,将对象的属性名,属性值作为键值对映射的方式存入Map中.(Properties:为Map的实现类)

 

序列化:

 

通过ObjectInputStream流将实现了序列化接口的类实例化对象以二进制数据的形式写入文本文件中

 

A:  setProperty(String key,String value)
B: getProperty(String key)

 

getProperty(String key,String defaultValue)
C: Set<String> stringPropertyNames()
和IO流结合的方法:
A: list 通过打印流把数据保存到文件中
B: load 通过任意流把文本中的数据加载到集合中
C: store 通过任意流把数据保存到文件中

 

 

 

 

 ----------- android培训、java培训、java学习型技术博客、期待与您交流! ---------

 

转载于:https://www.cnblogs.com/miaozy/p/3728301.html

[Python图像处理] 一.图像处理基础知识及OpenCV入门函数 该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还请海涵~ 同时推荐作者的C++图像系列知识: [数字图像处理] 一.MFC详解显示BMP格式图片 [数字图像处理] 二.MFC单文档分割窗... 阅读详情

相关推荐

高光谱图像处理和分析软件(包含雷尼绍Renishaw wdf 文件导入解析功能)

是一款基于微软windows操作系统的多传感器成像工具,用于处理和分析高光谱图像。它是一个模块化的系统,由一个基本的引擎,一个图形用户界面,一个化学计量工具箱和可选的用户提供的模块组成。它支持最重要的光谱成像技术,如UV/Vis、红外、拉曼、太赫兹、光发射/吸收和质谱。除此之外,还允许用户将高光谱图像与物理属性图和传统高分辨率彩色照片合并在一起 链接:https://pan.baidu.com/s/1ruQ5YSh5_ZS9wx_V3Q5Oow 提取码:qdx0 ...

业余程序员小徐的博客 8071

黑马程序员__IO流小结

------- android培训、java培训、期待与您交流! ----------   system类中有一个in字段 InputStream in=System.in;//这个是一个类字段,不能被实例化。也就是//创建一个标准输入流对象,对应键盘这个输入设备,而且是字节流。 int by=in.read();//read方法是一个阻塞至方法。控制台将会等待客户输入。 通过键

qq369784205的博客 363

实践指南——【SPSS操作解析】线性混合效应模型在重复测量数据中的应用

本文详细解析了线性混合效应模型在重复测量数据分析中的应用,并提供了SPSS操作指南。文章阐述了该模型如何通过区分固定效应与随机效应,有效处理数据非独立性和缺失值问题,从而获得更可靠的统计推断。

oo7890的博客 551

黑马程序员_IO流小结

引用毕向东老师的视频:

td920217的专栏 536

多目标跟踪中使用trackeval评估dancetrack运行结果

trackeval使用

qq_46144849的博客 1783

YOLOv8 交通违规检测各个场景的实际应用

本文介绍了基于YOLOv8的交通违规检测系统在不同场景下的应用实现。系统可检测闯红灯、超速、违停和不系安全带等多种违规行为,针对每种场景提供了具体的技术方案和Python实现代码。其中闯红灯检测结合信号灯状态分析,超速检测通过距离时间计算速度,违停检测采用长时间跟踪策略,安全带检测则需更高精度识别。文章还展示了如何整合各功能构建综合交通监管系统,并总结了不同应用场景的技术要点和优化方向,为智能交通管理提供了实用解决方案。

u010117029的博客 300

黑马程序员-java中io流小结

------- android培训、java培训、期待与您交流! ---------- (1)InputStream的基本方法   int read() throws IOException 读取一个字节以整数形式返回,如果返回-1已到输入流的末尾   void close() throws IOException 关闭流释放内存资源   long skip(lon

skyboyk的专栏 461

【2026华为OD新规机考】最新套题持续更新【完全原创题解 | 详细考点分类 | 不断更新题目 | 六种主流语言Py+Java+Cpp+C+Js+Go】

可上练习华子OD、大厂真题绿色聊天软件戳od1441了解算法冲刺训练(备注【优快云】否则不通过)

weixin_48157259的博客 507

黑马程序员--Java中IO流小结

------- android培训、java培训、期待与您交流! ---------- 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。   IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出

macover的专栏 537

Quuppa 如何引领蓝牙 ® 定位服务的全新发展方向

我们最优质的客户,是那些对其他实时定位系统(RTLS)的承诺感到失望、转而寻求 “能覆盖全业务场景的更广泛赋能技术” 的客户 —— 前文提到的消防车制造商就是典型案例:他们尝试并通过 Quuppa 的蓝牙方案取得了成功。我们希望业务合作伙伴(如系统集成商、解决方案提供商)能充分利用 Quuppa 智能定位系统的功能,为客户提供专属解决方案:无论是追踪微型标签、实现未来移动设备的 AoD 功能,还是基于 RSSI 的简单信标(信标作为物联网网关),这些功能都能让同一套 Quuppa 系统支持广泛的用例。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 832

VTsystem背景检查函数Value Valid

Value Valid是个非常实用的函数,如何让它灵活的为我们所用,便是本文的内容。

欢迎来到eee的博客 794

黑马程序员——Java的IO流小结

---------------------- android培训、java培训、期待与您交流! ---------------------- 当java程序需要从数据源读取数据时,我们就需要一个流来连接想要的数据用来读取,想输出数据时则还需要一个流来写。IO流分为字节流和字符流,字节流由InputStream和OutputStream处理,而字符流由Reader和Writer处理。数据可能来自文

cds885的专栏 371

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

黑马程序员——IO流之File类等小结

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- File对象 专门用于描述系统中文件或者文件夹的对象。可以用于操作文件或文件夹的属性信息。File对象可以作为参数传递给流的构造函数。 1、创建。 createNewFile(); //如果此文件已经存在,则返回false  2、删除。 delete();  d

u013954260的专栏 337

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

黑马程序员----IO流之File类等小结

OutputStream类的常用方法 方法名称 描述 public void close() throws IOException 关闭输出流 public void flush() throws IOException 刷新缓冲区 public void write(

Feng的专栏 672

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

黑马程序员——javase进阶——day10——IO流,Properties集合,IO工具类

通过变量,数组,或者集合存储数据都是不能永久化存储 , 因为数据都是存储在内存中只要代码运行结束,所有数据都会丢失使用IO流1,将数据写到文件中,实现数据永久化存储2,把文件中的数据读取到内存中(Java程序)I 表示intput ,是数据从硬盘进内存的过程,称之为读。O 表示output ,是数据从内存到硬盘的过程。称之为写IO的数据传输,可以看做是一种数据的流动,按照流动的方向,以内存为参照物,进行读写操作简单来说:内存在读,内存在写字节输入流类。

qq_56444564的博客 1119

黑马程序员——IO流及其他常见流

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.IO流小结 IO流 |--字节流 |--字节输入流 InputStream int read():一次读取一个字节 int read(byte[] bys):一次读取一个字节数组 |--FileInputStream

DoSamba的博客 501

黑马程序员——IO小结

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、IO 1、IO概述 IO流用来处理设备之间的数据传输。 Java对数据的操作是通过流的方式。 Java用于操作流的对象都在IO包中。 2、IO分类 流按操作数据分为两种:字节流与字符流。 其实计算机里的所有数据都是以字节的形式体现的,计算机可以直接识别字节。但是作为人类的程序

gongxiao2015的专栏 405

黑马程序员-io流输入与输出的若干总结

概述: 流就是字节序列的抽象概念,能被连续读取数据的数据源和能被连续写入数据的接收端就是流,流机制是Java及C++中的一个重要机制,通过流我们可以自由地控制文件、内存、IO设备等数据的流向。而IO流就是用于处理设备上的数据,如:硬盘、内存、键盘录入等。IO流根据处理类型的不同可分为字节流和字符流,根据流向的不同可分为输入流和输出流。   字节流和字符流: 字符流,因为文件

alexchy的专栏 422

黑马程序员————IO技术小结(第三篇)

一、IO流的常用基类 二、一个标准的IO异常处理方恨死

让风继续吹 476

黑马程序员——学习日志9IO流

------- android培训、java培训、期待与您交流! ----------

pslichao的专栏 477

黑马程序员——javase进阶——day11——字符流,编码表,对象流,其他流

计算机中储存的信息都是用二进制数据表示的;我们在屏幕上看到的英文、汉字等字符是二进制数转换之后的结果按照编码表规则,将字符存储到计算机中,称为编码。按照同样的编码表规则,将存储在计算机中的二进制数据解析显示出来,称为解码。编码和解码使用的码表必须一致,否则会导致乱码。简单理解:存储一个字符a,首先需在码表中查到对应的数字是97,然后按照转换成二进制的规则进行存储。称为编码读取的时候,先把二进制解析出来,再转成97,通过97查找早码表中对应的字符是a。

qq_56444564的博客 1057

黑马程序员----JAVA----IO小结(3)

----------------------------------android培训、java培训、期待与您交流!------------------------------   IO包中的其他对象: 1,打印流: printStream: 是一个字节打印流,System.out对应的类型就是PrintStream。 他的构造函数可以接受三种数据类型的值。 1,字符串

dong5488的专栏 610

黑马程序员——IO复习小结(一)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

u010322906的专栏 370

黑马程序员——IO复习小结(二)

读取键盘录入 读取键盘录入 System.out:对应的是标准输出设备,控制台 System.in:对应的是标准输入设备,键盘 需求: 通过键盘录入数据。 当录入一行数据后,就将该行数据进行打印。 如果录入的数据是over,那么停止录入。 通过刚才的键盘录入一行数据并打印其大写,发现其实就是读一行数据的原理。 也就是readLine方法。 那么能不能

u010322906的专栏 473

黑马程序员_IO小结

------- android培训、java培训 、期待与您交流! ----------   System类包含一些有用的类字段和方法。它不能被实例化 获取系统属性例子: Class SystemDemo{        Public static void main(String args[]){               Properties prop = System.ge

llnloveming的专栏 414

"黑马程序员”IO流的学习日志01

----------------- android培训、java培训、期待与您交流! ----------------------  一  IO分类的小结: 文件: FileInputStream, FileOutputStream, FileReader, FileWrite byte[]:ByteArrayInputStream, ByteArrayOutputStrea

tangjinjava的专栏 298
上一篇: 黑马程序员___范型详述
下一篇: 黑马程序员___多线程小结
alg89136
博客等级 码龄12年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值