目录

一、实验目的

二、实验代码

1.使用Java的输入、输出流将一个文本文件的内容按行读出,每读出一行就顺序添加行号,并写入到另一个文件中。

2.使用RandomAccessFile流将一个文本文件倒置读出。

3.请分别使用不带缓冲区和带缓冲区的字节流复制图片(或者音频或者视频)文件。

4.请分别使用不带缓冲区和带缓冲区的字符流复制文本文件。

每文一语


一、实验目的

1. 掌握输入输出流的总体结构;

2. 掌握流的概念;

3. 掌握FileInputStream类、FileOutputStream类、FileReader类、FileWriter类的构造方法、常用方法的使用;

4. 了解各种流(包括文件流、管道流、连接文件、过滤流、对象的序列化、随机访问)的使用。

二、实验代码

1.使用Java的输入、输出流将一个文本文件的内容按行读出,每读出一行就顺序添加行号,并写入到另一个文件中。

package 作业练习.test4;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import java.io.File;
public class FileScanner {public static void main(String[] args) throws Exception{System.out.print("请输入文件名:");Scanner reader = new Scanner(System.in);String fileName = reader.nextLine();File f = new File("E:\\Intellij IDEL\\project\\src\\"+fileName);Scanner fi = new Scanner(f);//输出:String sLine = null;int index  = 0;while(fi.hasNext()) {sLine = fi.nextLine();System.out.println(++index + " " + sLine);try {BufferedWriter out = new BufferedWriter(new FileWriter("test1.txt"));out.write(index + " " + sLine);} catch (IOException e) {}}System.out.println("文件创建成功!");}
}

2.使用RandomAccessFile流将一个文本文件倒置读出。

package 作业练习.test4;
import java.io.*;
public class test2 {public static void main(String []args) throws IOException{RandomAccessFile file =new RandomAccessFile("E:\\Intellij IDEL\\project\\src\\test4\\test.txt","r");long len =file.length();while(0!=len--){file.seek(len);char ch =(char)file.read();System.out.print(ch);}file.close();}
}

3.请分别使用不带缓冲区和带缓冲区的字节流复制图片(或者音频或者视频)文件。

要求:(1) 使用字节流FileInputStream、FileOutputStream实现复制;

(2) 在定义字节缓冲区大小时,可以尝试16字节、256字节、1024字节等不同大小的缓冲区进行复制。

(3) 请统计采用不同方式进行文件复制所花的时间,并进行分析。

package 作业练习.test4;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class App14_3 {public static void main(String[] args) {File reader = new File("E:\\Intellij IDEL\\project\\src\\test4\\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 IDEL\project\src\test4\test2.txt");BufferedReader din=new BufferedReader(fin) ;FileWriter fou =new FileWriter("E:\Intellij IDEL\project\src\test4\test.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文件操作输入输出相关推荐

  1. 读取Java文件到byte数组的三种方式及Java文件操作大全(包括文件加密,String加密)

    读取Java文件到byte数组的三种方式 package zs;import java.io.BufferedInputStream; import java.io.ByteArrayOutputSt ...

  2. Java文件操作源码大全

    Java文件操作源码大全 1.创建文件夹 5 2.创建文件 5 3.删除文件 5 4.删除文件夹 6 5.删除一个文件下夹所有的文件夹 7 6.清空文件夹 8 7.读取文件 8 8.写入文件 9 9. ...

  3. Java文件操作大全(绝对的经典,值得收藏!)

    Java文件操作 //1.创建文件夹 //import java.io.*; File myFolderPath = new File(str1); try { if (!myFolderPath.e ...

  4. 【Java文件操作(八)】将控制台输出重定向到txt文件

    我的博客--Java文件操作系列 [Java文件操作(一)]递归打印文件目录 [Java文件操作(二)]删除文件夹,但保留其内部文件 [Java文件操作(三)]递归复制文件夹内所有文件 [Java文件 ...

  5. 【Java文件操作(七)】序列化:将自定义类写入文件

    我的博客--Java文件操作系列 [Java文件操作(一)]递归打印文件目录 [Java文件操作(二)]删除文件夹,但保留其内部文件 [Java文件操作(三)]递归复制文件夹内所有文件 [Java文件 ...

  6. 【Java文件操作(六)】借助内存复制图片:ByteArrayOutputStream\ByteArrayInputStream\FileOutputStream\FileInputStream辨析

    我的博客--Java文件操作系列 [Java文件操作(一)]递归打印文件目录 [Java文件操作(二)]删除文件夹,但保留其内部文件 [Java文件操作(三)]递归复制文件夹内所有文件 [Java文件 ...

  7. 【Java文件操作(五)】从txt文件中读取字符串、乱码原因

    我的博客--Java文件操作系列 [Java文件操作(一)]递归打印文件目录 [Java文件操作(二)]删除文件夹,但保留其内部文件 [Java文件操作(三)]递归复制文件夹内所有文件 [Java文件 ...

  8. 【Java文件操作(三)】递归复制文件夹内所有文件

    我的博客--Java文件操作系列 [Java文件操作(一)]递归打印文件目录 [Java文件操作(二)]删除文件夹,但保留其内部文件 [Java文件操作(三)]递归复制文件夹内所有文件 [Java文件 ...

  9. 【Java文件操作(一)】递归打印文件目录

    我的博客--Java文件操作系列 [Java文件操作(一)]递归打印文件目录 [Java文件操作(二)]删除文件夹,但保留其内部文件 [Java文件操作(三)]递归复制文件夹内所有文件 [Java 文 ...

最新文章

  1. 联想服务器x3650硬盘黄灯,服务器故障处理 X3650M4主板故障 硬盘黄灯 内存错误 联想(IBM)服务器配件...
  2. 应用中验证码的生成方法.
  3. python直方图均衡函数_Python中的自适应直方图均衡
  4. 二分类神经网络的特征光谱---2-3至2-9
  5. DOS获取局域网内所有正在使用的ip地址
  6. 如何系统性掌握深度学习模型设计和优化
  7. Java自动装箱后的值比较
  8. c++和python先学哪个?
  9. 适合前端工作者的iPhone Web App开发
  10. (原)ubuntu16中编译boost1.61.0库
  11. 工业以太网交换机故障的排障步骤
  12. Django中model新建数据表操作后admin页面不更新问题
  13. linux下跑分软件下载,geekbench5下载-多平台综合性测试工具 v5.3.1 免费版 - 下载吧...
  14. Python 分词 第三方模块
  15. 学生HTML个人网页作业作品~蛋糕甜品店铺共11个页面(HTML+CSS+JavaScript)
  16. 清华牛人总结的数据分析笔记
  17. C# 之多线程篇 Task(C#超级工具类)
  18. java 表格 列删除_Java 删除Excel表格中的空白行或列
  19. Scientists discover how mosquitoes detect human sweat-由于嗅觉受体的存在,蚊子会被人体汗液中的乳酸所吸引,
  20. TCP与Web服务器

热门文章

  1. MFC Windows 程序设计[319]之渐变标题栏程序(附源码)
  2. 从《我和我的祖国》、《攀登者》和《中国机长》影评中看到了什么
  3. 社区活动|Pulsar 2.8.0 Release Party 北京站来啦!
  4. CVS上海国际智慧零售展览会成立16载 2019再度绽放
  5. Calendar日历类详解【SimpleDateFormat、时区、Date、夏令时、常用方法,日期差、获取当前时间】
  6. 取消以只读方式打开word
  7. Pdf文件定位关键词坐标
  8. 阿宽食品冲刺上市:2021年利润大幅下滑,方便粉丝收入波动明显
  9. Altium Designer 快捷操作方法(去除丝印、死铜皮、隐藏模型、泪滴等
  10. 彩票摇号器java代码_多线程的简单应用----彩票摇号器