时间:2021-05-20
本文实例讲述了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程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
java对象输入输出流读写文件的操作实例java支持对对象的读写操作,所操作的对象必须实现Serializable接口。实例代码:packagevo;impor
Java并发编程之Semaphore(信号量)详解及实例概述通常情况下,可能有多个线程同时访问数目很少的资源,如客户端建立了若干个线程同时访问同一数据库,这势必
Java并发编程:CountDownLatch与CyclicBarrier和Semaphore的实例详解在java1.5中,提供了一些非常有用的辅助类来帮助我们
先以简单的文件读写实现为基础,FileHelper类中的readFile方法用于读取文件内容,writeFile方法用于向文件中写入内容。importjava.
本文实例讲述了android编程之多线程编程实现方法。分享给大家供大家参考。具体分析如下:该功能与前面《android开发socket编程之udp发送实例分析》