10-23学习笔记
来源:互联网 发布:淘宝提醒买家付款 编辑:程序博客网 时间:2024/05/01 20:19
今天的知识点比较简单,但是很重要,是IO技术的基础。IO技术是专门用来处理设备上的数据,用于设备间的数据传输。IO包括Input(输入、写)和Output(输出、读取),而流按照操作数据可以分为字节流和字符流,字节流是可以用来处理所有的数据,而字符流是字节流和编码表组合的,专门用来处理文字数据的流。
IO流体系包括四大体系,字节流:InputStream(字节输入流)、OutputStream(字节输出流);字符流:Reader(字符输入流)、Writer(字符输出流)。这四大类都是抽象类,调用方法的时候都是通过他们的子类调用。
如何将一个数据写入到硬盘的文本文件?第一步:首先是通过FileWriter类创建一个对象,然后通过构造器指定文件;第二步:调用write方法,将字符串写入到内部的缓冲区;第三步:调用flush方法将缓冲区的数据刷新到目的地文件;第四步:调用close方法关闭流,这个方法只能使用一次,在调用这个方法的时候会自动刷新一次。//如果在构造器中加入true,可以实现不覆盖并且续写。
如何从一个文本文件中读取数据?第一步:创建FileReader对象,并且让流对象关联指定文件;第二步:通过对象调用read方法读取数据,返回的是int类型;第三步:close方法关闭流。************还有第二个方式,就是通过数组,定义一个数组char[] ch=new char[1024];将读取到的字符存入到数组中,然后将数组转为字符串输出即可,返回值是读取的字符个数。
在读和写的时候,要注意都会抛异常,所以我们必须处理异常,两者创造对象的时候都先赋值为null,然后通过try catch创建对象。然后一定要注意将close方法放入finally中,因为close方法必须要被执行到。
//写入
import java.io.*;
class WriteDemo
{
//定义一个final量得到系统换行属性
private static final String LINE_SEPARATOR=System.getProperty("line.separator");
public static void main(String[] args)
{
//1.首先是创建一个FileWriter的对象
FileWriter fw=null;
try
{
//如果在创建对象时,构造函数时传入一个true代表文件不覆盖可以续写
fw=new FileWriter("Demo1.txt");
//使用write方法将字符串写入到内部的缓冲区
fw.write("acvb"+LINE_SEPARATOR);//换行
fw.write("敖");
//使用flush方法将缓冲区中的数据刷新到目的地文件中
fw.flush();
}
catch (IOException e)
{
System.out.println(e.toString());
}
finally{
//使用close方法关闭流,关闭前会自动刷新一次。
if (fw!=null)
{
try
{
fw.close();
}
catch (IOException e)
{
throw new RuntimeException("关闭失败");
}
}
}
}
}
//读取
import java.io.*;
class ReadDemo
{
public static void main(String[] args)
{
//读取的第一种方式
/*
//首先创建一个流对象。将该对象与指定的源文件关联
FileReader fr=null;
try
{
fr=new FileReader("Demo1.txt");
//然后调用流对象的读取方法对数据进行获取
int c=0;
while ((c=fr.read())!=-1)
{
System.out.println((char)(c));
}
}
catch (IOException e)
{
System.out.println(e.toString());
}
finally{
if (fr!=null)
{
try
{
fr.close();
}
catch (IOException e)
{
throw new RuntimeException("出问题了");
}
}
}
*/
//读取的第二种方式
FileReader fr=null;
char[] buf=new char[1024];
try
{
fr=new FileReader("Demo1.txt");
//然后调用流对象的读取方法对数据进行获取
int c=0;
while ((c=fr.read(buf))!=-1)
{
System.out.println(new String(buf));
}
}
catch (IOException e)
{
System.out.println(e.toString());
}
finally{
if (fr!=null)
{
try
{
fr.close();
}
catch (IOException e)
{
throw new RuntimeException("出问题了");
}
}
}
}
}
- 10-23学习笔记
- Spring学习笔记23
- 每日学习笔记(23)
- java学习笔记23
- 每日学习笔记(23)
- Java学习笔记23
- 【JAVAWEB学习笔记】23
- C++学习笔记 23
- Xcode9学习笔记23
- AD学习笔记10
- Solaris 10 学习笔记
- Java学习笔记10
- stl 学习笔记 10
- Hibernate学习笔记10
- Spring学习笔记10
- Solaris 10学习笔记
- android学习笔记10
- 10号学习笔记
- 想起那些瞬间,还是会心痛
- 10-16学习笔记
- 一点记录
- ListView详解3
- 非主流伤感日志_我把心尘封,我把爱埋葬
- 10-23学习笔记
- 处理ASProtect的Advanced Import Protect的一些想法和过程(1)
- 命令行运行android模拟器
- POJ 2250解题报告
- 加勒比的伤感爱情日志分享:如果你知道我也爱你
- Android 秒表
- Java编程中“为了性能”需做的26件事
- HDU 2579 Dating with girls(2)
- 指针数组和数组指针的使用