Java5_2_文件流_字节流_FileInputStream与FileOutputStream(小编整理)

时间:2019-05-13 16:14:18下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《Java5_2_文件流_字节流_FileInputStream与FileOutputStream》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《Java5_2_文件流_字节流_FileInputStream与FileOutputStream》。

第一篇:Java5_2_文件流_字节流_FileInputStream与FileOutputStream

一:FileInputStream

/*

* 作者:田停

* 日期:2013 8 19

* 功能:文件的读取(FileInputStream类的使用演示)(在磁盘中已存在)*/

package com.tt.IO;

import java.io.*;

public class Demo2 {

/**

* @param args

*/

public static void main(String[] args){

// TODO Auto-generated method stub

File f=new File(“d:aa.txt”);

//因为File没有读写的能力,所以需要借助FileInputStream来try {

FileInputStream fis=new FileInputStream(f);

//定义一个字节数组

byte []bytes=new byte[1024];

int n=0;//得到实际读取到的字节数

//循环读取,读完n=-1

while((n=fis.read(bytes))!=-1)

{

//把字节转成String

String s=new String(bytes,0,n);

System.out.println(s);

}

fis.close();

} catch(Exception e){

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

二:FileOutputStream

/*

* 作者:田停

* 日期:2013 8 19

* 功能:FileOutputStream

*/

package com.tt.IO;

import java.io.*;

public class Demo3 {

/**

* @param args

*/

public static void main(String[] args){// TODO Auto-generated method stubFile f=new File(“d:t1.txt”);

FileOutputStream fos=null;

try {

fos=new FileOutputStream(f);

String s=“中国你好!”;

fos.write(s.getBytes());

} catch(Exception e){

// TODO Auto-generated catch blocke.printStackTrace();

}

}

}

三:图片的拷贝

/*

* 作者:田停

* 日期:8 20

* 功能:图片的拷贝

*/

package com.tt.IO;

import java.io.*;

public class Demo4 {

public static void main(String[] args){// TODO Auto-generated method stub

FileInputStream fis=null;

}} FileOutputStream fos=null;try {fos=new FileOutputStream(“d:shuihu_1.jpg”);fis=new FileInputStream(“c:shuihu_1.jpg”);int byte []bytes=new byte[1024];while((n=fis.read(bytes))!=-1){//输出流指定文件fos.write(bytes);}} catch(Exception e){// TODO Auto-generated catch blocke.printStackTrace();} finally {try {fos.close();fis.close();} catch(IOException e){// TODO Auto-generated catch blocke.printStackTrace();} }

第二篇:java 文件与输入输出流

实验2文件与输入输出流(1)

一、实验目的 能够使用File类表示文件或目录,获取相关信息,并进行文件操作;  能够利用InputStream和OutputStream的子类进行字节读、写操作,明白其优点及不足;

 能够用FileInputStream和FileOutputStream进行文件读写的操作;  理解“逐层包装”思想,能够利用“数据流”(DataInputStream和DataOutputStream)包装字节流,方便各类数据的读写;

 能够利用“缓冲字节流”(BufferedInputStream和BufferedOutputStream)包装字节流,加快数据的读写速度;

 熟知System.in和System.out是PrintStream的实例。

二、实验步骤

在Eclipse环境中导入项目“code(lab_2)”,然后按要求完成各小题:

1.打开FileTest.java文件,请按下列要求进行操作:

(1)按要求填充程序所缺代码;

(2)程序的运行需要用到一个命令行参数,请分别用一个文件、目录作参数来运行程序,看一看结果有什么不同。

(在Eclipse中设置命令行参数方法:Run/Open Run Dialog „/(x)=Arguments设置)

2.在上一题的基础上,修改程序,使之具备输出指定目录下所有子目录中文件绝对路径名、大小的功能,如下所示:

子目录:C:jdk1.6.0sample

子目录:C:jdk1.6.0samplewebservices

子目录:C:jdk1.6.0samplewebservicesEbayServer

文件: C:jdk1.6.0samplewebservicesEbayServerbuild.properties,大小: 512 字节 文件: C:jdk1.6.0samplewebservicesEbayServerbuild.xml,大小: 3168 字节1

……

提示:参考课件 FileSpace.java内容,通过一个以“路径名”为参数的静态方法来实现:该方法先判断“路径名”是一个文件,还是一个目录?如果是文件,则输出其绝对路径和大小;若为一个目录,则先显示目录绝对路径,再列出该目录下的所有子目录和文件,通过循环和递归方法来执行后续处理。

3.文件FileOutputStreamTest.java的功能是:利用FileOutputStream类向myfile.txt文件写入'0'~'9'和“用字节流写入文件内容”,请填充程序所缺代码,并运行程序。然后打开myfile.txt文件,查看其内容是否与要求相符?

4.文件FileInputStreamTest1.java的功能是:利用FileInputStream类以“逐字节”方式读取myfile.txt文件内容,并输出。请填充程序所缺代码,并运行程序。问题:为什么程序输出的内容为乱码?

5.在FileInputStreamTest1.java的基础上,编写程序FileInputStreamTest2.java,利用FileInputStream类以“字节数组”方式读取myfile.txt文件内容,能正确输出,解决乱码问题。

思考题:乱码问题是怎样解决的?

6.若要将信息“Java开发典型模块大全”(书名)、“明日科技”(作者)、79.5(价格)等信息以UTF、double类型保存到文件books.txt中,请用“数据流”类编程实现。

第三篇:Java_10_文件与流的应用(一)

第十章 文件与流的应用

(一)一、大纲

1.掌握Java中File类的使用

2.理解Java中流的概念与分类

3.掌握Java中字节流的使用

4.理解Java中的序列化

二、实验目标:

1.掌握对文本文件的读写

2.掌握读写二进制文件

3.掌握File类的使用

三、实验方式:

要求学生自己独立完成四、上机指导任务

4.1任务1:获取文件的属性(时间:20分钟)

4.1.1 任务描述

(1)在C盘根目录下,新建一个doc文件,在该文件中写入一些文本。

(2)定义Main类,在其main方法中获取该文件的以下属性:名称、路径:、绝对路径、最后修改时间、文件大小、所在文件夹

(3)查阅API,理解完成以上操作的方法,注释并总结。

4.1.2 任务目的(1)掌握File类的基本方法。

4.1.3 任务要求

4.1.4 难点提示

(1)

(2)

(3)

(4)

(5)

(6)获取名称用 getName()方法 获取路径用getPath()方法 获取绝对路径用getAbsolutePath()方法 获取最后修改时间用 file.lastModified()方法获取文件大小用 file.length()方法 获取所在文件夹用getParent()方法

4.2任务2:文件拷贝(时间:20分钟)

4.2.1 任务描述

(1)编写程序拷贝本练习文档,到D盘根目录下。

4.2.2 任务目的(1)掌握读写二进制文件的方法。

4.2.3 任务要求

(1)对必要的异常进行处理

4.2.4 难点提示

(1)使用FileInputStream和FileOutputStream配合进行操作。

4.3任务3:保存信息到文本文件(时间:20分钟)

4.3.1 任务描述

(1)定义Student类,有姓名,年龄,身高,体重,住址几个属性。由用户通过控制台输入各项属性值(可以循环输入多次),构建对象,将对象信息通过DataOutputStream将其写入到students.txt文件中。

(2)写入各属性值时,应使用对应的write方法,如writeDouble()、writeInt()、writeUTF()等,(需查阅API,自学DataOutputStream类)。

4.3.2 任务目的(1)学习DataOutputStream。

4.3.3 任务要求

4.3.4 难点提示

4.4任务4:读取文本文档的信息(时间:20分钟)

4.4.1 任务描述

(1)基于任务3,从students.txt中读取各项属性值,构建一个Student对象,打印对象的信息。

4.4.2 任务目的(1)练习DataInputStream类的使用。

4.4.3 任务要求

4.4.4 难点提示

五、课后作业

5.1 作业1 学习使用流操作数组(时间:20分钟)

5.1.1 作业任务

(1)完成课本P140页实践操作,学习使用ByteArrayInputStream,查阅API相关方法,注释总结。

5.1.2 任务要求

5.1.3 难点提示

5.2 作业2 序列化和反序列化[扩展](时间:20分钟)

5.2.1 作业任务

(1)利用ObjectInputStream,ObjectOutputStream和Serializable,重做任务3和任务4,查阅API相关方法,注释总结。

5.2.2 任务要求

5.2.3 难点提示

5.3 作业3 字节流与字符流的转换[扩展](时间:20分钟)

5.3.1 作业任务

(1)在d盘下新建一个test10.txt文件,依次写入0-100个数字字符(记事本打开不是乱码),再在25后插入英文字符“Hello world!”,然后读取文件并打印。

5.3.2 任务要求

(1)使用BufferedInputStream和BufferedOutputStream,查阅API相关方法,注释总结。

5.3.3 难点提示

5.4 作业4 文件夹的遍历(时间:20分钟)

5.5.1 作业任务

(1)遍历你计算机上某个硬盘下的某个文件夹。要求,该文件夹下所有文件都显示到控制台上,如果该文件夹下有子文件夹,则把子文件夹下的所有文件也显示出来,以此类推。

5.5.2 任务要求

5.5.3 难点提示

(1)可以采用递归的思想。编写一个方法,该方法接收一个File类型的参数,该方法可以列出某文件夹下所有文件及子文件夹,然后以每个子文件夹为参数再次调用该方法。

第四篇:Java 实验 文件管理与IO流

作业要求:每个题保存为一个.java文件,保存在同一工程文件夹中,文件夹的名字为E:Java你的班级+姓名,例如:E:Java信息11张三。

注意:上交的程序包含程序的执行结果,以注释的形式附在程序后面。

实验六文件管理与I/O流

一、实验目的1.熟悉用文件File类创建、删除、查看文件或目录。

2.字节流、字符流、缓冲流、随机流等流式文件的创建,读写操作。

3.用字符流和缓冲流从键盘接受字符串的方法。

二、实验内容

1.先运行该程序。源文件是sy6_1.java。然后按【思考问题】分析程序。

import java.io.*;

public class sy6_1{

public static void main(String[] args)throws Exception

{

int x=0;

File Mypath;

Mypath=new File(“E:aaaa”);

if(!Mypath.exists())

{System.out.println(“创建新目录”);Mypath.mkdir();}

else System.out.println(“目录已存在”);

File Myfile1=new File(Mypath,“myfile1.txt”);

File Myfile2=new File(Mypath,“myfile2.txt”);

File Myfile3=new File(Mypath,“myfile3.txt”);

FileInputStream Fin=new FileInputStream(Myfile1);

FileOutputStream Fout=new FileOutputStream(Myfile1);

DataOutputStream Dout=new DataOutputStream(new FileOutputStream(Myfile2));

DataInputStream Din=new DataInputStream(new FileInputStream(Myfile2));

PrintWriter PWout=new PrintWriter(new FileWriter(Myfile3));

RandomAccessFile RAread=new RandomAccessFile(Myfile3,“r”);

String str;

int num1;

BufferedReader buf;//缓冲流

buf=new BufferedReader(new InputStreamReader(System.in));

System.out.print(“请输入一个小于255整型数:”);

while(!(str=buf.readLine()).equalsIgnoreCase(“q”))

{ System.out.print(“请输入另一个小于255整型数,按Q结束:”);

num1=Integer.parseInt(str);

Fout.write(num1);

}Fout.close();

System.out.println(“你刚输入的数据是:”);

while((x=Fin.read())!=-1)

{ System.out.println(x);

}Fin.close();

System.out.print(“请输入int范围内整型数:”);

while(!(str=buf.readLine()).equalsIgnoreCase(“q”))

{ System.out.print(“请输入另一个整型数,按Q结束:”);

num1=Integer.parseInt(str);

Dout.writeInt(num1);

}Dout.close();

int leng=Din.available()/4;

int xxx=0;

while(xxx

{ xxx++;

x=Din.readInt();

System.out.println(x);

} Din.close();

System.out.print(“请输入第一个字符串:”);

while((str=buf.readLine())!=null)

{ System.out.print(“请输入另一个字符串,按Ctrl+Z结束:”);

PWout.println(str);//写入myfile3.txt中

} PWout.close();

RAread.seek(0);

while(RAread.getFilePointer()

{System.out.println(RAread.readLine());//从myfile3.txt中一行一行读并输出在控制台上

} RAread.close();

System.out.println(“完成”);

}

}

【思考问题】

① 本程序共用到哪几种流式文件?都用于做什么?

答:基本输入输出流:System.in.输入(从键盘)

System.out.输出(显示器)

字节流类:FileOutputStream 文件输出

FileInputStream 文件输入

DataOutputStream数据输出

DataInputStream数据输入

字符流类:PrintWriter输入

缓冲文件流:BufferedReader

② 运行完程序后,请用“我的电脑”找到创建的文件,并分别打开文件看其内容,你

看到的是你输入的数据吗?

答:myfile1和myfile2中的数据非输入数据,myfile3中可以看见输入的数据。③ 将创建输入流对象Fin放在输出流Fout前,看发生什么?

④ 对第二种流式文件判断文件占用字节的长度用available()方法,而此处用int

leng=Din.available()/4;为什么除以4?

2.按照第1题的内容,修改程序要求每次重新运行不覆盖原内容,把所有其它流式文件全部改用随机流式文件来实现,新的数据填加在文件尾,然后读出校验。

import java.io.*;

public class sy6_2 {

public static void main(String[] args)throws Exception {

File Mypath;

Mypath = new File(“E:aaa”);

if(!Mypath.exists())

{System.out.println(“创建新目录”);Mypath.mkdir();}

else System.out.println(“目录已存在”);

File Myfile1 = new File(Mypath, “myfile1.txt”);

File Myfile2 = new File(Mypath, “myfile2.txt”);

File Myfile3 = new File(Mypath, “myfile3.txt”);

RandomAccessFile rf1 = new RandomAccessFile(Myfile1, “rw”);

RandomAccessFile rf2 = new RandomAccessFile(Myfile2, “rw”);

RandomAccessFile rf3 = new RandomAccessFile(Myfile3, “rw”);

String str;

int num1;

BufferedReader buf;//缓冲流

buf = new BufferedReader(new InputStreamReader(System.in));

System.out.print(“请输入一个小于255整型数:”);

rf1.seek(rf1.length());//指针移到文件尾进行写操作

while(!(str=buf.readLine()).equalsIgnoreCase(“q”))

{ System.out.print(“请输入另一个小于255整型数,按Q结束:”);num1=Integer.parseInt(str);

rf1.write(num1);//将整型数作为ascii码值所对应的字符写入myfile1.txt中}

rf1.seek(0);//指针移到文件头进行读操作

int x=0;

while((x=rf1.read())!=-1)

{

System.out.println(x);

} rf1.close();

System.out.print(“请输入int范围内整型数:”);

rf2.seek(rf2.length());

while(!(str = buf.readLine()).equalsIgnoreCase(“q”)){

System.out.print(“请输入另一个整型数,按Q结束:”);

num1 = Integer.parseInt(str);

rf2.writeInt(num1);

}

int x1 = 0;

for(int l = 0;l

{

rf2.seek(l*4);

x1 = rf2.readInt();

System.out.println(x1);

}

rf2.close();

System.out.print(“请输入第一个字符串:”);

rf3.seek(rf3.length());

while((str = buf.readLine())!= null){

System.out.println(“请输入另一个字符串,按Ctrl+Z结束:”);rf3.writeUTF(str);//写入myfile3.txt中

}

rf3.seek(0);

while(rf3.getFilePointer()< rf3.length()){

System.out.println(rf3.readUTF());//从myfile3.txt中读出字符串并输出在控制台上

}

rf3.close();

System.out.println(“完成”);

}

}

三、实验报告要求

1.回答第1题【思考问题】提出的问题。

2.写出第二题要求的源程序。

第五篇:Java_11_文件与流的应用(二)

第十一章 文件与流的应用(二)

一、大纲

1.理解java中字符流的概念和特性

2.掌握FileReader()和FileWriter()的使用

3.掌握BufferedReader()和BufferedWriter()的使用

4.掌握PrintWriter()的使用

二、实验目标:

1.掌握对文本文件的读写

2.掌握读写二进制文件

3.掌握File类的使用

三、实验方式:

要求学生自己独立完成四、上机指导任务

4.1任务1:打印文档(时间:20分钟)

4.1.1 任务描述

(1)使用FileReader类,读取一个txt文档,并文档内容打印输出。

4.1.2 任务目的(1)练习FileReader的使用。

(1)正确处理相关异常

4.1.4 难点提示

(1)读取的文档字符,需要转换为字符型。

4.2任务2:复制文档(时间:20分钟)

4.2.1 任务描述

(1)使用FileWriter类将一个txt文档复制到d:盘根目录下。

4.2.2 任务目的(1)练习FileWriter的使用。

4.2.3 任务要求

(1)正确处理相关异常。

4.2.4 难点提示

(1)用FileReader读,用FileWriter写。

4.3任务3:带缓存读写(时间:20分钟)

4.3.1 任务描述

(1)使用BufferedReader,BufferedWriter重做任务1和任务2。

4.3.2 任务目的(1)练习BufferedReader, BufferedWriter的使用。

(2)体会带缓冲和不带缓存的区别。

4.3.4 难点提示

4.4任务4:查阅API(时间:20分钟)

4.4.1 任务描述

(1)查阅API中类FileReader,FileWriter,BufferedReader,BufferedWriter常用方法,在任务1,2,3程序中注释总结。

4.4.2 任务目的(1)练习查阅API,深入理解几个流类。

4.4.3 任务要求

(1)总结几个类的用法及区别。

4.4.4 难点提示

五、课后作业

5.1 作业1 存储电话本(时间:20分钟)

5.1.1 作业任务

(1)让用户循环输入好友的姓名及电话,将其存入record.txt文件中。

5.1.3 难点提示

(1)可将用户循环输入的好友姓名及电话保存在一个二维数组当中,最后保存到文本文件中。

5.2 作业2 文件读写(时间:20分钟)

5.2.1 作业任务

(1)在计算机C盘根目录下,建立一个test.txt文件,用FileWriter类和BufferedWriter类在该文件中写一些文本。

(2)编写一个Main类,在该类的main方法中,采用FileReader类和BufferedReader类配合,将该test.txt文件中的文本读出并显示到控制台上。

(3)修改Main类的main方法中,原有读取文本文档的基础上,添加写文件的功能,即每读取一行文本,在打印到控制台的同时,将其写到test2.txt中。在写文件时,使用FileWriter 和BufferedWriter 完成。

5.2.2 任务要求

5.2.3 难点提示

(1)循环读写,直到文件末尾。

5.3 作业3 标记流(时间:20分钟)

5.3.1 作业任务

(1)完成课本P154页例子程序,结合API理解BufferedReader的mark(),reset()方法。

(1)理解mark(),reset()两个方法的作用。

5.3.3 难点提示

5.4 作业4 字符替换(时间:20分钟)

5.4.1 作业任务

(1)使用字符串“当dream和现实面对时,总是很painful的。”仿照作业3,编写程序,将字符串中的英文单词替换成“(此处省略n个字符)”,n为当前位置英文字符数。

5.4.2 任务要求

(1)使用CharArrayReader读取字符串;

(2)按要求输出替换后的字符串。

5.4.3 难点提示

(1)每次读取一个字符,判断是英文字符,设一个标记变量记录英文开始,同时设置计数变量,之后每个英文字符计数加1,直到非英文字符,清除标记变量,并输出要替换的内容。

5.5 作业5 字节流转字符流(时间:20分钟)

5.5.1 作业任务

(1)完成课本P156页例子程序,结合API理解类InputStreamReader,OutputStreamWriter。

5.5.2 任务要求

(1)理解InputStreamReader,OutputStreamWriter两个类的作用和应用场合。

5.5.3 难点提示

下载Java5_2_文件流_字节流_FileInputStream与FileOutputStream(小编整理)word格式文档
下载Java5_2_文件流_字节流_FileInputStream与FileOutputStream(小编整理).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐