今天我学习了Java输入输出流
Java 语言采用流的机制实现实现输入与输出。输入输出流:实现输入输出操作的类库在Java.io.包中:
1.
File对象是File类的实例,File对象对应一个目录或文件,对象的属性包括文件路径、名字、文件长度、可否读写。File对象只用来命名文件,查询文件属性、和处理目录,不提供文件的读写操作。
例如:创建File对象的代码:File f1=new File(“/myfile/mefile.txt”);
File f2=new File(“/myfile”,”myfile.txt”);
下面是一个文件的复制程序,将某个文件的内容全部复制到另一个文件中
import java.io.*;
class Example
{
public static void main(String[] args)
{
File inputFile = new File("a.txt");
File outputFile = new File("b.txt");
int ch;
try
{
FileReader in=new FileReader(inputFile);
FileWriter out=new FileWriter(outputFile);
while((ch=in.read())!=-1)
{
out.write(ch);
}
in.close();
out.close();
System.out.println("文件复制完成");
}
catch(FileNotFoundException e1){System.out.println("文件没有找到"+e1);}
catch(IOException e2){System.out.println("File read error!"+e2);}
}
} //这个程序将a.txt的内容全部复制到了b.txt里面,在文件读写操作时有可能发生文件没有找到和文件无法读取的异常,因此要用try{}catch(){}捕获这样的异常。
2.
缓冲式输入输出:当文件按行组织,并且行不是定长的,这时就需要采用缓冲式输入输出的方式。
a) 缓冲式输入:对于程序的输入请求,系统一次性的输入足够多的内容放入内存缓冲区里面,供程序以后的输入请求使用,待缓冲区的内容用完后,再一次性的输入足够多的数据。
缓冲式输入的用法:先创建FileReader对象,再利用FileReader创建BufferedReader对象,
File file=new File(“abc.Txt”);
BufferedReader in=new BufferedReader(file);
这样,BufferedReader对象in使用readLine()方法,就能按行输入文件“abs.txt”了。
b) 缓冲式输出:对于程序的请求,系统先将内容暂存于缓冲区里面,待缓冲区满或输出结束后才将暂存于缓冲区中的内容输出带到流的目的地,与缓冲式输入相似,由FileReader创建BufferedWriter类、再利用write()方法实现缓冲式的输入。
c) 随机访问:,可以利用RandomAccessFile类实现对文件的随机访问,它既可以随机输出,也可以随机输入。可以跳过部分不需要的数据,去读后面的数据,或者对早先读过的数据重新读入,使用时会产生文件不存在的异常,因此要用try—catch捕获异常。
今天学习的内容就是这些了,希望自己明天有更好的状态学习。