java文件输入与输出,java语言的输入输出与文件处理
目录
一、实验目的二、实验代码1.使用爪哇的输入输出2.使用RandomAccessFile流将一个文本文件倒置读出3.请分别使用不带缓冲区和带缓冲区的字节流复制图片(或者音频或者视频)文件4.请分别使用不带缓冲区和带缓冲区的字符流复制文本文件
一、实验目的
1.掌握输入输出流的总体结构;2.掌握流的概念;3.掌握文件输入流类、文件输出流类、文件阅读器类、文件写入器类的构造方法、常用方法的使用;4.了解各种流(包括文件流、管道流、连接文件、过滤流、对象的序列化、随机访问)的使用。
二、实验代码
1.使用Java的输入输出
使用爪哇的输入、输出流将一个文本文件的内容按行读出,每读出一行就顺序添加行号,并写入到另一个文件中。
包裹作业练习.测试4导入Java。io。缓冲编写器;导入Java。io。filewriter导入Java。io。io异常;导入Java。util。扫描仪;导入Java。io。文件;公共类文件扫描器{ public static void main(String[]args)引发异常{System.out.print(请输入文件名:);扫描仪阅读器=新扫描仪(系统。在);字符串文件名=阅读器。next line();文件f=新文件( e : Intellij IDEL project src 文件名);扫描器fi=新扫描器(f)和://输出:String sLine=nullint index=0;而(fi。has next()){ sLine=fi。next line();系统。出去。println(index sLine);try { buffered writer out=new buffered writer(new file writer( test1。txt’));出去。write(index sLine);} catch(io异常e){ } }系统。出去。println(文件创建成功!);}}
2.使用RandomAccessFile流将一个文本文件倒置读出
包装作业练习.测试4导入Java。io。*;公共类测试2 { public static void main(String[]args)抛出io异常{ random access file file file=new random access file( e : Intellij IDEL project src test 4 test。txt , r );long len=文件。长度();而(0!=len-){ file。seek(len);char ch=(char)文件read();系统。出去。打印(ch);}文件。close();}}
3.请分别使用不带缓冲区和带缓冲区的字节流复制图片(或者音频或者视频)文件
要求:
(1) 使用字节流文件输入流、文件输出流实现复制;(2) 在定义字节缓冲区大小时,可以尝试16字节、256字节、1024字节等不同大小的缓冲区进行复制。(3) 请统计采用不同方式进行文件复制所花的时间,并进行分析包装。作业练习.测试4导入Java。io。bufferedinputstream导入Java。io。bufferedoutputstream导入Java。io。文件;导入Java。io。文件输入流;导入Java。io。filenotfoundexception导入Java。io。文件输出流;导入Java。io。io异常;public class app 14 _ 3 { public static void main(String[]args){ File reader=new File( e : Intellij IDEL project src tes
t4\1.png");File writer = new File("\Intellij IDEL\project\src\test4\2.png");FileInputStream fis = null;try {fis = new FileInputStream(reader);} catch (FileNotFoundException e1) {e1.printStackTrace();}BufferedInputStream bis = new BufferedInputStream(fis);FileOutputStream fos = null;try {fos = new FileOutputStream(writer);} catch (FileNotFoundException e) {e.printStackTrace();}BufferedOutputStream bos = new BufferedOutputStream(fos);byte[] b = new byte[256];int len = -1;try {while ((len = bis.read(b)) != -1) {bos.write(b, 0, len);bos.flush();}} catch (IOException e) {e.printStackTrace();} finally {try {bos.close();fos.close();bis.close();fis.close();} catch (IOException e) {e.printStackTrace();}}}}
package 作业练习.test4;import java.io.*;public class test3 {public static void main(String []args) throws IOException{// 带缓冲区的字节流拷贝一个文本文件FileInputStream fin =new FileInputStream("E:\Intellij IDEL\project\src\test4\test.txt");FileOutputStream fout =new FileOutputStream("E:\Intellij IDEL\project\src\test4\test1.txt");byte buf[] =new byte[2014]; //创建字节数组,作为临时缓冲if(fin.read(buf)!=-1){fout.write(buf);}System.out.println("文件复制成功");fin.close();fout.close();/*带缓冲区的字符流拷贝一个文本文件FileReader fin =new FileReader("E:Intellij IDELprojectsrctest4test2.txt");BufferedReader din=new BufferedReader(fin) ;FileWriter fou =new FileWriter("E:Intellij IDELprojectsrctest4test.txt");BufferedWriter dou =new BufferedWriter(fou);char c[]=new char[1024]; //创建字符数组din.read(c);fou.write(c);System.out.println("文件复制成功");din.close();fou.close();fin.close();dou.close();*/}}
4.请分别使用不带缓冲区和带缓冲区的字符流复制文本文件
要求:
(1) 使用字符流FileReader、FileWriter实现复制;(2) 在定义字符缓冲区大小时,可以尝试16字符、256字符、1024字符等不同大小的缓冲区进行复制。
package 作业练习.test4;import java.io.*;public class App14_5 {static App14_5 test=new App14_5();public static String openFile(String fileName){ //打开文件StringBuffer sb=null;FileInputStream fis=null;try {fis=new FileInputStream(fileName); ; //实例化输入流对象byte b[]=new byte[1024];int len;sb=new StringBuffer();while( (len = fis.read(b))!=-1 ){ //读文件并判断是否到达文件尾String str=new String(b,0,len);sb.append(str);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{}return sb.toString();}public static boolean saveFile(String fileName,String content) throws IOException{boolean state=false;FileOutputStream fos=null;try {fos=new FileOutputStream(fileName); //实例化输出流对象//把content写入到文件中state=true;} catch (Exception e) {e.printStackTrace();}finally {}return state;}public static boolean copyFile(String sourceFileName,String destinationFifleName){boolean sate =false;InputStream fis=null;OutputStream fos=null;try {fis=new FileInputStream(sourceFileName);fos=new FileOutputStream(destinationFifleName);int len;byte buffer[]=new byte[1024];//此处请填写多行len=fis.read(buffer);String str1=new String(buffer,0,len);byte[] b = str1.getBytes();fos.write(b);sate =true;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {if(fis!=null) fis.close();if(fos!=null) fos.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return sate;}public static void main (String args[]) {App14_5 test=new App14_5();test.copyFile("E:\Intellij IDEL\project\src\test4\test.txt","E:\Intellij IDEL\project\src\test4\test3.txt");}}}
到此这篇关于java文件操作输入输出详解的文章就介绍到这了,更多相关java文件输入输出内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。