黑马程序员_考核技术日志1_IO篇之IO流的初步认识及对文件的简单的读取
来源:互联网 发布:linux lnmp安装不成功 编辑:程序博客网 时间:2024/06/03 20:16
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
IO流(Input Output)
1.IO的概念
1)IO流主要是用来处理设备之间的数据传输。
2)JAVA对于数据的操作是通过流的方式。
3)JAVA用于操作流的对象都在IO包中。
4)流按操作数据分为两种:字节流与字符流。
5)流按流向分为:输入流与输出流。
2.什么是输入与输出呢?
输入流与输出流相对于内在设备而言的。站在不同的角度输入和输出也是不一样的。
在计算机中,将外设中的数据读取到内在当中就是输入。
而将内在中的数据写入到外设当中就是输出。
3.字符流的由来
其实就是:字节流读取文字字节数据后,不直接操作而是先查指定的编码表,获取对应的文字。然后再对文字进行操作。简单来说就是,字节流+编码表。
4.IO流常用的基类
1)字节流的抽象基类:InputStream , OutputStream。
2)字符流的抽象基类:Reader , Writer.
如果要操作的是文字数据,建议优先考虑字符流。而且要将数据从内在写到硬盘上,要使用字符流中的输出流。
5.下面是一个简单的IO流小程序:其主要作用是创建一个txt文档在其中写入一串字符串。
public static void main(String[] args) throws Exception
{
//首先如果要想使用文件输出流就要创建一个文件输出流的对象
//用其父类去指向子类的引用, 这种方式比较好,推荐使用这种方式去创建对象。
Writer writer = new FileWriter("f:/aa.txt");
//下面是使用write方法,往方才创建的aa.txt中写一串字符串。
//注意, 其中如果创建aa.txt的时候如果硬盘中已经存在aa.txt时会把原有文件覆盖。
//如果在写入字符串的时候,aa.txt中存在内容,则会把原有的内容覆盖掉。
writer.write("Hello World !");
//还要记得,使用完流之后一定不要忘记把打开的流关闭掉。
writer.close();
//上面就可以成功的把Hello World写入到aa.txt了。
}
6.下面是IO异常的简单处理代码:
Writer writer = null;
try
{
//首先这里可以能会生异常,如果发生异常则会进行捕捉 。
writer = new FileWriter("f:/aa.txt");
writer.write("Hello World !");
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
//最后不管写入没有写入成功都要把打开的流进行关闭。
try
{
//然后这里也会发生异常, 因为如果,我们创建的路径不存在时,就不存在关闭问题了。
writer.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
好了以上就是解决IO异常的简单代码了。
7.下面是把已经写入aa.txt的文本从中读取出来代码如下:
//首先如果要读取文件要创建读文件
//创建时要给出所要读取的文件所在硬盘上的路径。
Reader reader = new FileReader("f:/aa.txt");
//然后就可以用里面的方法把aa.txt中的数据读取出来了。
System.out.println(reader.read());
//最后 关闭流。
reader.close();
下面是利用一个字符数组去存放已经读取的内容:
Reader reader = new FileReader("f:/aa.txt");
//下面是使用一个数组去存储读取的数据
//首先要生成 一个字符数组
char[] ch = new char[1024];
reader.read(ch);
//最后 把读取到ch数组中的数据输出到控制台。
//下面是利用string类的构造方法把ch转化成一个字符串
System.out.println(new String(ch));
//最后 关闭流。
reader.close();
使用读取方法时,第一次读取后会有个标识标识着你读到哪位置你下次再使用读方法时,就会直接从标识位置开始读,而不是从头开始读取 。循环时也是一样。
当文件读取到最后时,read方法会返回一个整数,当整数为-1时表示文件已经讲到末尾了。
8.下面是一个文件复制的程序:把aa.txt从f盘,复制到e盘:
//首先创建一个文件读取流,把要读取的文件读取到内在当中
Reader reader = new FileReader("f:/aa.txt");
//要完成复制功能,肯定要用到输出流。
//再创建一个用于输出的流。
Writer writer = new FileWriter("e:/aa.txt");
//下面就是读写过程:
int len = -1;
//创建一个存放数组,用于存放读取到的数据.
char[] ch = new char[1020];
while((len = reader.read(ch)) != -1)
{
//当读取完成后,就要开始写入工作了:
//也就是说,从每次读取到的0位置开始,一直写到,本次读取的长度 。
writer.write(ch, 0, len);
}
//最后 关闭打开的两个流文件。
reader.close();
writer.close();
- 黑马程序员_考核技术日志1_IO篇之IO流的初步认识及对文件的简单的读取
- 黑马程序员_考核技术日志2_IO篇之字符流的处理进程及字符流的缓冲区
- 黑马程序员:io对文件的读取
- 黑马程序员-IO流_文件的续写_文本文件读取方式
- 黑马程序员_基础_IO流学习笔记_文本文件读取及复制、字符流的缓冲区和装饰设计模式
- 黑马程序员_IO流_流操作的总结
- IO流的分类及学习1初步认识
- 黑马程序员_对.net平台的认识及重要概念的解读
- 黑马程序员_java的IO流(对第十八课IO理解以及文件读取和字符写入总结)
- 黑马程序员_IO流之字符流的学习
- 黑马程序员-多线程的初步认识
- 黑马程序员_IO(Java IO 的一般使用原则 )
- 黑马程序员_强大的IO流
- 黑马程序员_字符流_字节流_IO异常处理_文件的续写_拷贝文本_缓冲流
- 黑马程序员_IO流初步
- 黑马程序员_IO输入输出_常用的类和方法
- 黑马程序员_IO流的总结
- 黑马程序员_IO流的学习
- Shell脚本学习之sed详解
- Android开发中常用的工具类
- 在系统可扩展性方面常用的8个设计模式
- 在Delphi的DBGrid中插入其他可视组件
- (Android)actionbarsherlock getSupportActionBar() return null in android4.0,but in 2.3.3 is ok
- 黑马程序员_考核技术日志1_IO篇之IO流的初步认识及对文件的简单的读取
- 使用RSA进行信息加密解密的WebService示例
- LoadRunner中的error及解决方法总结
- 不管怎样,flaskr可算是移植到SAE上了。什么sqlite3、mysql,还有cursor,还是云里雾里!
- mvc模式的原理,在android中的应用
- 那些职场工作中常见的定律
- 用户体验要素的五个设计层面
- JSP注销删除Cookie和session的方法
- tomcat maven lib下面的jar包没有发布?