Java编程之文件读写实例详解
本文实例讲述了Java编程中文件读写的方法。分享给大家供大家参考,具体如下:
Java中文件读写操作的作用是什么?
回答这个问题时应该先想到的是Java只是一门语言,我们的一种使用工具而已,这样答案就明晰了,就是将外来的各种数据写入到某一个文件中去,用以保存下来;或者从文件中将其数据读取出来,供我们使用。就如下电影过程,从网络资源中下载一部电影保存于你电脑中(写文件),当你想看的时候就用播放器打开(读文件)。
Java中如何对文件进行读写操作?
先理一理,Java中的流分两种,字节流和字符流,其中字节流的两个基类是InputStream和OutputStream;字符流的两个基类是Reader和Writer。所谓文件流,即我们对文件的操作留不开流。由此可知我们要用到某个类必然继承如上的四个基类之一。Java中一切都是类,一切都是对象。自然会想到文件操作有哪些类:
如下四个直接用到的类:
字节流中:FileInputStream和FileOutputStream
字符流中:FileReader和FileWriter
找到类就好办事了。剩下来的就是去找实现方法啦。
两种选择方案在这里,这就牵涉到我们如何选择合适的文件读写方式呢?
选择条件的区别:
以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
以字符为单位读取文件,常用于读文本,数字等类型的文件.
至于是否选择用Buffer来对文件输入输出流进行封装,就要看文件的大小,若是大文件的读写,则选择Buffer这个桶来提供文件读写效率。
如下是简单运用实例:
1、运用字节流对文件进行直接读写:
注:FileOutputStream(file,true);里面true参数表示不覆盖原文件,直接在文件后面追加添加内容。
publicclassFileTest
{
staticFilefile=newFile("d:/test.txt");
publicstaticvoidmain(String[]args)
{
try
{
FileOutputStreamout=newFileOutputStream(file,true);
Strings="Hello,world!\r\n";
out.write(s.getBytes());
out.flush();
out.close();
//FileInputStreamin=newFileInputStream(file);
//byte[]b=newbyte[20];
//in.read(b,0,b.length);
//System.out.println(newString(b));
//in.close();
}catch(FileNotFoundExceptione)
{
e.printStackTrace();
}catch(IOExceptione)
{
e.printStackTrace();
}
}
}
2、运用字符流对文件进行直接读写:
publicclassFile03
{
staticFilefile=newFile("d:/test.txt");
publicstaticvoidmain(String[]args)
{
try
{
FileWriterfw=newFileWriter(file,true);
fw.write("Hello,world!\r\n");
fw.flush();
fw.close();
//FileReaderfr=newFileReader(file);
//inti=0;
//Strings="";
//while((i=fr.read())!=-1)
//{
//s=s+(char)i;
//}
//System.out.println(s);
}catch(FileNotFoundExceptione)
{
e.printStackTrace();
}catch(IOExceptione)
{
e.printStackTrace();
}
}
}
文件读写流用Buffer封装之后的运用:
1、对字节流封装后对文件进行读写:
staticFilefile=newFile("d:/test.txt");
publicstaticvoidmain(String[]args)
{
try
{
//FileOutputStreamout=newFileOutputStream(file,true);
//BufferedOutputStreambout=newBufferedOutputStream(out);
//Strings="Ihaveadream!";
//bout.write(s.getBytes());
//bout.flush();
//bout.close();
FileInputStreamin=newFileInputStream(file);
BufferedInputStreambin=newBufferedInputStream(in);
byte[]b=newbyte[15];
bin.read(b);
bin.close();
System.out.println(newString(b));
}catch(FileNotFoundExceptione)
{
e.printStackTrace();
}catch(IOExceptione)
{
e.printStackTrace();
}
}
}
2、对字符流封装后对文件进行读写:
publicclassFile03
{
staticFilefile=newFile("d:/test.txt");
publicstaticvoidmain(String[]args)
{
try
{
//FileWriterfw=newFileWriter(file,true);
//BufferedWriterbw=newBufferedWriter(fw);
//StringnextLine=System.getProperty("line.separator");
//bw.write("Hello,world!"+nextLine);
//bw.flush();
//bw.close();
FileReaderfr=newFileReader(file);
BufferedReaderbr=newBufferedReader(fr);
inti=0;
Strings="";
Stringtemp=null;
while((temp=br.readLine())!=null)
{
s=s+temp;
}
System.out.println(s);
}catch(FileNotFoundExceptione)
{
e.printStackTrace();
}catch(IOExceptione)
{
e.printStackTrace();
}
}
}
希望本文所述对大家Java程序设计有所帮助。