欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java编程之文件读写实例详解

程序员文章站 2024-03-07 19:40:51
本文实例讲述了java编程中文件读写的方法。分享给大家供大家参考,具体如下: java中文件读写操作的作用是什么? 回答这个问题时应该先想到的是java只是一门语言,我...

本文实例讲述了java编程中文件读写的方法。分享给大家供大家参考,具体如下:

java中文件读写操作的作用是什么?

回答这个问题时应该先想到的是java只是一门语言,我们的一种使用工具而已,这样答案就明晰了,就是将外来的各种数据写入到某一个文件中去,用以保存下来;或者从文件中将其数据读取出来,供我们使用。就如下电影过程,从网络资源中下载一部电影保存于你电脑中(写文件),当你想看的时候就用播放器打开(读文件)。

java中如何对文件进行读写操作?

先理一理,java中的流分两种,字节流和字符流,其中字节流的两个基类是inputstream和outputstream;字符流的两个基类是reader和writer。所谓文件流,即我们对文件的操作留不开流。由此可知我们要用到某个类必然继承如上的四个基类之一。java中一切都是类,一切都是对象。自然会想到文件操作有哪些类:

如下四个直接用到的类:

字节流中:fileinputstream和fileoutputstream
字符流中:filereader和filewriter

找到类就好办事了。剩下来的就是去找实现方法啦。

两种选择方案在这里,这就牵涉到我们如何选择合适的文件读写方式呢?

选择条件的区别:

以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
以字符为单位读取文件,常用于读文本,数字等类型的文件.
至于是否选择用buffer来对文件输入输出流进行封装,就要看文件的大小,若是大文件的读写,则选择buffer这个桶来提供文件读写效率。

如下是简单运用实例:

1、运用字节流对文件进行直接读写:

注:fileoutputstream(file, true);里面true参数表示不覆盖原文件,直接在文件后面追加添加内容。

public class filetest
{
static file file = new file("d:/test.txt");
public static void main(string[] args)
{
try
{
fileoutputstream out = new fileoutputstream(file, true);
string s = "hello,world!\r\n";
out.write(s.getbytes());
out.flush();
out.close();
//fileinputstream in = new fileinputstream(file);
//byte [] b = new byte[20];
//in.read(b, 0, b.length);
//system.out.println(new string(b));
//in.close();
} catch (filenotfoundexception e)
{
e.printstacktrace();
} catch (ioexception e)
{
e.printstacktrace();
}
}
}

2、运用字符流对文件进行直接读写:

public class file03
{
static file file = new file("d:/test.txt");
public static void main(string[] args)
{
try
{
filewriter fw = new filewriter(file,true);
fw.write("hello,world!\r\n");
fw.flush();
fw.close();
//filereader fr = new filereader(file);
//int i=0;
//string s ="";
//while( ( i = fr.read() )!= -1)
//{
// s = s +(char)i;
//}
//system.out.println(s);
} catch (filenotfoundexception e)
{
e.printstacktrace();
} catch (ioexception e)
{
e.printstacktrace();
}
}
}

文件读写流用buffer封装之后的运用:

1、对字节流封装后对文件进行读写:

static file file = new file("d:/test.txt");
public static void main(string[] args)
{
try
{
// fileoutputstream out = new fileoutputstream(file, true);
// bufferedoutputstream bout = new bufferedoutputstream(out);
// string s = "i have a dream!";
// bout.write(s.getbytes());
// bout.flush();
// bout.close();
fileinputstream in = new fileinputstream(file);
bufferedinputstream bin = new bufferedinputstream(in);
byte[] b = new byte[15];
bin.read(b);
bin.close();
system.out.println(new string(b));
} catch (filenotfoundexception e)
{
e.printstacktrace();
} catch (ioexception e)
{
e.printstacktrace();
}
}
}

2、对字符流封装后对文件进行读写:

public class file03
{
static file file = new file("d:/test.txt");
public static void main(string[] args)
{
try
{
// filewriter fw = new filewriter(file, true);
// bufferedwriter bw = new bufferedwriter(fw);
// string nextline = system.getproperty("line.separator");
// bw.write("hello,world!" + nextline);
// bw.flush();
// bw.close();
filereader fr = new filereader(file);
bufferedreader br = new bufferedreader(fr);
int i = 0;
string s = "";
string temp = null;
while((temp=br.readline())!=null)
{
s = s+temp;
}
system.out.println(s);
} catch (filenotfoundexception e)
{
e.printstacktrace();
} catch (ioexception e)
{
e.printstacktrace();
}
}
}

希望本文所述对大家java程序设计有所帮助。