文档库 最新最全的文档下载
当前位置:文档库 › 实验11 输入输出流(答案)

实验11 输入输出流(答案)

实验11 输入输出流(答案)
实验11 输入输出流(答案)

实验11输入输出流

一、实验目的

(1)掌握Java I/O基本原理。

(2)掌握标准输入/输出流和Scanner类的基本使用方法。

(3)掌握FileInputStream、FileOutputStream抽象类的基本使用方法。

二、实验任务

(1)阅读给定的Java Application程序,按要求回答问题并写出运行结果。

(2)按要求编写一个Java Application程序,并编译、运行这个程序。

三、实验内容

1、从标准输入读取数据

import java.io.*;

import java.util.*;

public class StdInput {

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

1:System.out.println("input:");

2:byte b[]=new byte[512];

3:int count=System.in.read(b);

4:System.out.println("count=:"+count);

5:System.out.println("output:");

6:for(int i=0;i

7:{System.out.print(b[i]+" ");}

} }

(1)分析程序代码,写出运行结果。

(2)将编号为6:和7:的两行改成一行语句System.out.println(b);输出的结果如何?分析为什么?

(3)如果将编号为2:的那一行代码改成double b[]=new double[512];那么修改其他的地方,完成正确输入和输出double类型的数组元素,请写出修改后的完整的运行代码和结果。

import java.io.*;

import java.util.*;

public class StdInput {

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

System.out.println("input:");

double b[]=new double[512];

Scanner sin=new Scanner(System.in);

//int count=System.in.read();

//System.out.println("count=:"+count);

System.out.println("output:");

for(int i=0;i

{b[i]=sin.nextDouble();

System.out.print(b[i]+" ");

}

} }

2、编写程序实现如下操作过程:先在指定的当前目录下创建名“temp”的子目录,在“temp”目录下创建两个文件“temp1.txt”和“temp2.txt”,然后列表显示temp

目录下的所有文件;接下来再重命名“temp1.txt”为“temp3.txt”,删除文件“temp2.txt”,再在temp目录下创建tp子目录,在“tp”目录下创建两个文件“temp4.txt”和“temp5.txt”,然后再次显示temp目录下的所有文件。

import java.io.*;

public class FileDirectory {

public static void main(String[] args) throws Exception{ File currentPath=new File(".");

File tempPath=new File(currentPath,"temp");

tempPath.mkdir();

File temp1=new File(tempPath,"temp1.txt");

temp1.createNewFile();

File temp2=new File(tempPath,"temp2.txt");

temp2.createNewFile();【代码1】//创建文件temp2.txt

System.out.println("第一次的目录文件:");

listsubdir(tempPath);

File newf=new File(tempPath,"temp3.txt");

temp1.renameTo(newf);

temp2.delete();【代码2】//删除temp2.txt文件

File tempPath1=new File(tempPath,"tp");

tempPath1.mkdir();【代码3】//创建子目录tp

File temp4=new File(tempPath1,"temp4.txt");

temp4.createNewFile();【代码4】//创建文件temp4.txt

File temp5=new File(tempPath1,"temp5.txt");

temp5.createNewFile();

System.out.println("更改后的目录文件:");

listsubdir(tempPath);

}

//递归显示指定目录的内容方法

static void listsubdir(File currentPath)throws Exception {String filenames[]=currentPath.list();

for(int i=0;i

{

File f=new File(currentPath,filenames[i]);

if(f.isDirectory())【代码5】//判断f是否是目录

{System.out.println("仍然是一个目录,进行递归调用

"+f.getAbsolutePath());

listsubdir(f);}

else System.out.println(f.getName());

}

}

}

写出运行结果:

3.将如下三组不同类型的数据利用DataInputStream和DataOutputStream写入文件,然后从文件中读出。三组数据如下:

{ 19.99, 9.99, 15.99,3.99, 4.99 }; { 12, 8, 13, 29, 50 };

{ "Java T-shirt", "Java Mug", "Duke Juggling Dolls", "Java Pin","Java Key Chain"} import java.io.*;

public class S2 {

public static void main(String[] args) throws IOException { double prices []={19.99,9.99,8.97};

int units []={12,8,9};

String describle []={"java t-shirt","java mug","java coat"};

DataOutputStream out = new DataOutputStream(new

FileOutputStream("test.txt"));//创建数据输出流

for (int i = 0; i < prices.length; i ++)

{ out.writeDouble(prices[i]);

out.writeChar('\t');

out.writeInt(units[i]);【代码1】//写入数量

out.writeChar('\t');

out.writeChars(describle[i]);

out.writeChar('\n');

}

out.close();//关闭数据输出流

DataInputStream in = new DataInputStream(

new FileInputStream("test.txt"));【代码2】//创建数据输入流

double price;

int unit;

String desc;

double total = 0.0;

try{

//利用数据输入流读文件内容

while (true)

{ price = in.readDouble();【代码3】//读出价格

in.readChar(); // throws out the tab

unit = in.readInt();

in.readChar(); // throws out the tab

desc= in.readLine();

System.out.println("你已经订购:" + unit + " 数量的" +desc + " 价格为:" + price);

total = total + unit * price;

}

}catch (EOFException e)//捕获异常

{e.printStackTrace();}

System.out.println("总价格为: $" + total);

in.close(); //关闭数据输入流

}

}

4、将上题中的三组不同类型的数据利用对象串行化的方式写入文件,然后从文件中读出。

import java.io.*;

class prices implements Serializable【代码2】//定义prices类{ double price;

int unit;

String product;

prices(double pc,int un,String pt)

{

price=pc;unit=un;product= pt;

}

}

public class S1 {

public static void main(String[] args) throws IOException, ClassNotFoundException {

double pri []={19.99,9.99,8.97};

int units []={12,8,9};

String describle []={"java t-shirt","java mug","java coat"};

for(int i=0;i

{prices ps=new prices(pri[i],units[i],describle[i]);

FileOutputStream fos=new FileOutputStream("f2.txt");

ObjectOutputStream oout=new ObjectOutputStream(fos);

//实例化输出对象oout

oout.writeObject(ps);【代码2】//写入对象

oout.flush();

ps=null;

ObjectInputStream oin=new ObjectInputStream(new FileInputStream("f2.txt"));【代码3】//实例化输入对象oin ps=(prices)oin.readObject();

oin.close();

System.out.println("输出prices["+i+"]类的信息:");

System.out.print("jiage:"+ps.price);

System.out.print("\t");

System.out.print("shuliang :"+ps.unit);

System.out.print("\t");

System.out.print("migncheng:"+ps.product);

System.out.print("\n");}

}

}

5、比较下面两段代码,执行之后有什么区别,说明原因。

第一段代码:

import java.io.File;

import java.io.FileWriter;

import java.io.Writer;

public class WriterDemo03 {

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

// 第1步:使用File类找到一个文件

File f = new File("d:" + File.separator + "test.txt");// 声明File 对象

// 第2步:通过子类实例化父类对象

FileWriter out = new FileWriter(f); //进行实例化

// 第3步:进行写操作

String str = "Hello World!!!"; // 准备一个字符串

out.write(str); // 将内容写入文件

//out.flush(); // 强制性清空缓冲区中的内容

// 第4步:关闭输出流

// out.close();

// 此时没有关闭

} }

第二段代码:

import java.io.*;

public class OutputStreamDemo05 {

public static void main(String[] args) throws Exception { // 第1步:使用File类找到一个文件

File f = new File("test.txt"); // 声明File 对象

// 第2步:通过子类实例化父类对象

FileOutputStream out =new FileOutputStream(f); //进行实例化

// 第3步:进行写操作

String str = "Hello World!!!"; // 准备一个字符串

byte b[] = str.getBytes(); // 字符串转byte数组

out.write(b);

// 将内容输出

// 第4步:关闭输出流

// out.close();

// 此时没有关闭

}

}

6、编写一个Java Application程序,实现如下的设计功能:通过字节流从“copyFile.java”文件中读取数据并写入到“temp.txt”文件中去,实现copy功能。

1:import java.io.*;

2:public class CopyFile {

3:public static void main(String[] args) {

4:try {

5:FileInputStream fis = new FileInputStream("CopyFile.java"); 6:FileOutputStream fos = new FileOutputStream("temp.txt"); 7:int read = fis.read();

8:while ( read != -1 ) {

9:fos.write(read);

10:read = fis.read();

11:}

12:}catch (IOException e) {

13:System.out.println(e);

14:} f inally{fis.close();

15:fos.close();}

16:}

19:}

实验四 输入输出流程序设计

C++面向对象程序设计课程实验报告 课程名称C++面向对象程序设计班级实验日期2014.5.16-2012 .5.23 姓名学号实验成绩实验名称实验四输入输出流程序设计 实验目的及要求1.理解输入输出流的基本概念,明确流是一个类 2.了解输入输出流类库基本结构和主要类,掌握主要层次,其中重 点理解fstream,iostream和iomanip 3.理解流缓冲区类的派生关系以及设备缓冲、文件缓冲和流缓冲 4.熟悉格式化的输入和输出,记住主要的常用的操作符,以及各种 应用(对齐) 掌握文件的输入和输出,区别C语言中的文件写入、打开等操作,会对一个文件进行I/O操作 实验环境硬件平台:普通的PC机 软件平台:Windows 操作系统编程环境:VisualC++ 6.0 实验内容1.文件数据的读取。编制一程序来显示并保存[2,1000]内的所有素数。显示、保存素数的格式为:每行10个素数,每一个素数占7个字符,右对齐,最后一行不足10个素数时按一行输出 2.编写一个单向链表的类模板,分别实现增加、删除、查找和打印操作 算法描述及实验步骤1、这个题主要考察了文件中数据的读取,还包括数据格式化输入输出。首先定义一个ofstream类的对象output,在main函数中打开文件后,再分别编写判断素数、每行输出10个数以及使辖域为7的代码,最后关闭文件。 2 这个题是C++与数据结构的结合,实现单向链表内各种功能。首先定义一个类ListNode,然后利用前插入法初始化链表,编写类模板的成员函数,再分别进行增加、删除和查找的操作

调试过程及实验结果 总结1.一旦文件被打开,文件中的文本数据信息的读/写操作与控制台文件信息的输入/输出操作就完全一致 2.定义ifstream、ofstream、fstream流类对象时,应用对象名替代控制台文本信息输入/输出使用的输入流类对象(如cin)和输出流类对象(如cout)

输入输出流实验六

实验五 Java 输入输出流 1.实验目的 (1) 掌握输入输出流的总体结构; (2) 掌握流的概念; (3) 了解各种流(包括文件流、管道流、连接文件、过滤流、对象的序列化、随机访问)的使用。 2.实验内容 实验题1 编写一个Java Application程序,打印命令行输入的所有参数。 [基本要求] 编写完整程序。 程序代码为: package输入输出流; import java.io.*; public class IO_1 { public static void main(String[] args) { for (int i = 0; args != null && i < args.length; i++) { System.out.println("第" + i + "个参数是" + args[i]); } // 创建文件对象 File f = new File("D:/java/A.txt"); if (!f.exists()) { try { f.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } try { // 将文件读取到内存中 InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); System.out.println("请输入:"); String s = br.readLine(); System.out.println("您输入的内容是:" + s); // 将内存写入到文件里面 FileWriter fw = new FileWriter(f, true); BufferedWriter bw = new BufferedWriter(fw); bw.write(s); //关闭流

输入输出流实验

深圳大学 实验报告 课程名称: Java 实验序号:上机实践9 实验名称:统计英文单词&读取Zip文件 班级:计算机3 姓名:卢志敏 同组人:实验日期: 2008 年 12 月 29 日 教师签字:

一、实验目的 掌握RandomAccessFile类的使用。 掌握ZipInputStream流的使用。 二、实验环境 WinXp SP 3 三、实验要求 实验1 使用RandomAccessFile流统计一篇英文中的单词,要求如下: (1)一共出现了多少个英文单词。 (2)有多少个互不相同的单词。 (3)给出每个单词出现的频率,并将这些单词按频率大小顺序显示在一个Text--Area中。 实验2 读取,并将中含有的文件重新存放到当前目录中的book文件夹中,即将的内容解压到book文件夹中。 四、实验步骤和内容 实验1 源代码: import .*; import class WordStatistic

{ Vector allWords,noSameWord; WordStatistic() { allWords=new Vector(); noSameWord=new Vector(); } public void wordStatistic(File file) {try { RandomAccessFile inOne=new RandomAccessFile(file,"rw");; import class StatisticFrame extends Frame implements ActionListener { WordStatistic statistic; TextArea showMessage; Button openFile; FileDialog openFileDialog; Vector allWord,noSameWord; public StatisticFrame() { statistic=new WordStatistic(); showMessage=new TextArea(); openFile=new Button("Open File"); (this); add(openFile,; add(showMessage,;

实验04Java输入输出流报告材料

实验四 Java 输入输出流 1.实验目的 (1) 掌握输入输出流的总体结构; (2) 掌握流的概念; (3) 了解各种流(包括文件流、过滤流、对象的序列化、随机访问)的使用。2.实验内容 实验题1 编写一个Java Application程序,打印命令行输入的所有参数。 [基本要求] 编写完整程序。 运行结果: 代码如下: import java.util.Scanner; public class CommandOutPut { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Please input :"); Scanner in = new Scanner(System.in);

String str = in.nextLine(); System.out.println("The output results :"); System.out.println(str); in.close(); } } 实验题2 通过键盘输入路径,搜索指定路径下的全部内容。 运行结果: 代码如下: package https://www.wendangku.net/doc/4e13641029.html,.output; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class Output { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String fileName = "d:\\xxx.txt"; File file = new File(fileName); byte[] b=new byte[(int)file.length()]; FileInputStream out=new FileInputStream(file);

《Java面向对象程序设计》实验-实验八(输入输出流)

广西科技大学 计通学院 《Java面向对象程序设计》实验实验八输入输出流 学生姓名:××× 学号:××× 班级:××× 指导老师:××× 专业:计算机科学与技术 提交日期:×××年××月××日 实验报告内容 1.实验目的 掌握字符输入、输出流用法; 掌握使用Scanner类解析文件; 掌握Console流的使用。 2.实验内容 实验教材-第12章实验1、2、3 字符输入输出流;Scanner类与Console类。 要求:完善程序,给出实验结果截图; 完成试验后练习。 3.程序代码及运行结果: 实验1 举重成绩单 //AnalysisResult、java import java、io、*; import java、util、*;

public class AnalysisResult { public static void main(String[] args) { File("score、txt"); File("scoreAnalysis、txt"); try{ Writer out=new (fWrite); BufferedWriter bufferWrite=new BufferedWriter(out); Reader in=new (fRead); BufferedReader bufferRead=new BufferedReader(in); String str=null; while((str=bufferRead、 readLine())!=null){ double totalScore=Fenxi、getTotalScore(str); str=str+"总成绩:"+totalScore; System、out、println(str); bufferWrite、write(str); bufferWrite、newLine(); } bufferRead、close(); bufferWrite、close(); } catch(IOException e){ System、out、println(e、toString()); } } } //Fenxi、java import java、util、*;

C++输入输出流实验报告

深圳大学实验报告 实验课程名称:程序设计实验与课程设计 实验项目名称:实验10 C++流输入与流输出 学院:计软专业:计科 报告人:学号:班级: 3 同组人:无 指导教师:朱安民 实验时间:2014年6月16日提交时间:2014年6月16 声明: 本次实验内容由报告人和同组人独立完成,所有涉及到他人的工作均已说明。报告人和同组人均同意教师及学校为教学活动而引用本实验的内容,且无需事先征得同意和特别说明。 教务处制

一、实验目的 1.掌握标准输入输出(iostream库中标准对象cin、cout)的使用 2.掌握IO流类成员函数输入输出(cin.get, cin.getline, cin.read; cout.put, cout.write)的使用 3.掌握输出格式(标准控制符、IO流类成员函数、iomanip头文件中的控制符)控制方法 4.掌握磁盘文件的输入输出方法 二、实验说明和实验环境 1.在奥特曼类的基础上,编写一个程序,重载运算符“》”和“《”,使得用户可以直接(格式化)输出奥特曼的状态。在主程序中输入若干个(3个)奥特曼的状态,并分别将它们保存到文件RecordU.txt中。然后读取并显示文件中的内容。 2.奥特曼和怪物都具有属性:等级, 生命, 攻击, 经验, 金钱,都具有方法:初始化initial和显示状态display 在奥特曼的初始化中,需要接受外来等级参数,生命, 攻击的数值初始化为等级的10倍,金钱为等级的100倍,经验恒为0 在怪兽的初始化中,需要接受外来等级参数,生命, 攻击的数值初始化为等级的8倍,经验为等级的80倍,金钱为等级的800倍 对怪兽和奥特曼的状态输出采用运算符《重载的方法,并结合display方法使用,注意本题目要求怪兽和奥特曼的状态输出必须使用重载运算符《,不能直接使用display方法。 注意:为了实现运算符《重载,需要包含头文件 经常天降怪石会砸中奥特曼或怪兽,如果被幸运石砸中,就会处于“鸿运当头”状态,被砸对象除等级外其它属性全部翻倍;如果被厄运石砸中,就会陷入“倒霉透顶”状态,被砸对象除等级外其它属性全部减半。把“鸿运当头”封装成操作,并用重载运算符++来实现;“倒霉透顶”封装成操作,并用重载运算符--来实现。两个重载都需要用友元方法。 3.奥特曼和怪物经过一番战斗斗,需要中场休息,休息时把各自的属性值存放到一个文件中,休息结束时需要从文件中读取之前的状态继续战斗。 奥特曼和怪物都具有属性:等级, 生命, 攻击, 经验, 金钱,都具有方法:初始化initial和显示状态display 奥特曼和怪兽的属性值均来自于文件(文件的第一行是奥特曼的数据,初始状态为:等级是8,生命, 攻击的数值初始化为等级的10倍,金钱为等级的100倍,经验恒为0,文件的第二行是怪兽的数据,初始状态为等级是4,生命, 攻击的数值初始化为等级的8倍,经验为等级的80倍,金钱为等级的800倍)对怪兽和奥特曼的状态输出采用运算符《重载的方法,并结合display方法使用,注意本题目要求怪兽和奥特曼的状态输出必须使用重载运算符《,不能直接使用display方法。 把信息直接从文件读出来并赋值给奥特曼和怪兽,需要重载》运算符作为友元; 把奥特曼和怪兽的值写入文件,要求重载《运算符作为友元

实验九:C++的输入输出流

福建农林大学金山学院实验报告 系(教研室):________ 专业:计算机科学与技术年级: _________________ 实验课程:面向对象程序设计姓名: ______ 学号:__________ 实验室号__________ 计算机号___________ 实验时间:_____________ 指导教师签字:____________ 成绩:_____________ 实验9 C++的I/O流 一、实验目的和要求 (1)掌握一般类型数据的输入输出格式控制方法。 ⑵掌握重载“ << ”和“ >> ”的方法。 (3)掌握对文件的输入输出操作方法。 二、实验内容和原理 1、编程实现下面要求:打印有符号数和无符号数200;以数据符号左对齐、数据本身右对齐方式输 出整数9999,域宽为15;将十进制整数300以0x开头的十六进制格式输出;用前导符号$格式打印9.876,域宽为& 2、定义一个分数类fraction ,通过重载运算符“ <<”以分数形式输出分数的结果,如将三分之二输出为2/3。 3、编写一个程序来统计文件file.txt 中的某个特定英文字符的个数。(如:用户输入“ a”,则统计出该文件中出现“ a ”的次数)。 三、实验环境 1.硬件:PC机; 2.软件:Windows操作系统、Visual C++ 6.0 四、算法描述及实验步骤 1. (1)在VC环境下根据题目写出类 (2)检查程序有无错误(包括语法错误和逻辑错误),有则改之。 (3)编译和连接。 #in clude #in clude using n amespace std; int mai n() {cout<<"打印无符号数和有符号数200"<

实验七输入输出流

实验七输入输出流 一、实验目的 (1)了解流式输入输出的基本概念; (2)熟悉Java.io包中常用的基本输入输出类; (3)掌握程序与文件之间的基本输入输出操作; 二、实验内容 1) 把字符串“20102324,张三,男,25,软件工程”,保存到文件”d:\\a.txt”中, 并读取打印a.txt文件中的内容。 2) 把我们在聊天界面中发送的消息保存到日志文件里面,在界面上添加一个历史按钮,当点击历史按钮时读取日志文件内容。 三、实验步骤 1)把字符串“20102324,张三,男,25,软件工程”,保存到文件”d:\\a.txt”中,并读取打印a.txt文件中的内容。 (1) 定义变量message,值为“20102324,张三,男,25,软件工程”; (2) 创建指向”D:\\a.txt”的文件对象 (3) 创建输出流 (4) 把message写入流(文件)中 (5) 关闭输出流 (6) 创建输入流 (7) 读取文件内容 (8) 打印文件内容 (9) 关闭输入流 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FileIO { public static void main(String[] args) { String message = "20102324,张三,男,25,软件工程"; File myFile=new File("D:\\a.txt"); //写文件 try { FileOutputStream fout = new FileOutputStream(myFile,true);//不覆盖 try { fout.write(message.getBytes()); } catch (IOException e) { e.printStackTrace(); }finally{ try { fout.close(); } catch (IOException e) { e.printStackTrace();}} } catch (FileNotFoundException e) { e.printStackTrace(); } //读文件 try { FileInputStream fint = new FileInputStream(myFile); byte b[] = new byte[(int) myFile.length()]; try { fint.read(b); String s = new String(b); System.out.println(s); } catch (IOException e) {

(学生用)实验13 输入输出流1

实验指导书 教学单位:计算机工程系 课程名称:面向对象程序设计II 面向专业:11计算机 电子科技大学中山学院

实验指导书 实验名称:输入输出流1 学时安排:2 实验类别:验证性实验实验要求:必做  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一、实验目的和任务(黑体小四) 1.理解输入输出流基本概念 1)流:数据在程序和设备间流动 2)文本流:ascII字符; 二进制流:二进制格式存放的数据;文本文件:存放ascII字符的文 件;二进制文件:存放二进制数据的文件;文件:磁盘文件,设备文件;缓冲区:内存预读写 的区域; 2.输入输出流类体系 1)理解c++流类图;(程序中一般须包含iostream.h)(重点) 2)了解c++用运算符重载>>,<<实现标准设备的输入输出; cin>>x,解释成 cin.operator>>(x),cout<

实验6 输入输出流操作

实验6 输入输出流操作 一、实验目的 1. 理解数据流的概念 2. 理解Java流的层次结构 3. 理解文件的概念 二、实验要求 1. 掌握字节流的基本使用方法 2. 掌握字符流的基本使用方法 3. 能够创建、读写、更新文件 三、实验练习内容 1. Java的标准输入输出流System.in/System.out 知识点解析: 标准数据流指在字符方式下(如DOS 提示符)程序与系统进行输入输出的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。 示例:课本例10.1 2. 文件字节输入输出流类FileInputStream/ FileOutputStream 知识点解析: 文件字节输入输出流主要负责完成对本地磁盘文件的顺序输入与输出操作。示例:课本例10.2 3. 数据字节输入输出流DataOutputStream/DataInputStream 知识点解析: 使用数据输入流DataOutputStream 和数据输出流DataInputStream 可以读取或写入8种基本数据类型的数据,不用关心它们的实际长度是多少字节。一般与文件输入流FileInputStream 和输出流类FileOutputStream 一起使用。 示例:课本例10.3 4. 对象字节输入输出流ObjectInputStream/ ObjectOutputStream 知识点解析: 使用对象流可以直接写入或读取一个对象。由于一个类的对象包含多种信

息,为了保证从对象流中能够读取到正确的对象,因此要求所有写入对象流的对象都必须是序列化的对象。一个类如果实现了Serializable 接口,那么这个类的对象就是序列化的对象。Serializable 接口没有方法,实现该接口的类不需要实现额外的方法。 示例:课本例10.4 5. 文件字符输入输出流FileReader/FileWriter和字符缓冲输入输出流 BufferedReader/BufferedWriter 知识点解析:文件字符输入输出流类与文件字节输入输出流类功能类似,但处理的基本单位是字符。字符缓冲输入输出流类用来对字符流进行成批的处理。 示例:课本例10.5 6. 文件类File 知识点解析: 文件类主要用来保存文件或目录的各种属性, 包括文件名、文件长度、最后修改时间、是否可读等;文件类还有以下功能:提供获得当前文件的路径名, 判断指定文件是否存在, 获得当前目录中所有文件列表, 创建文件、删除文件、创建目录、删除目录等操作的方法。 示例:课本例10.6 7. 文件过滤器接口FileFilter和FilenameFilter 知识点解析: 文件过滤器接口FileFilter和FilenameFilter用来实现对文件名字符串的过滤。两个接口中都声明accept()方法来实现过滤操作。 示例:课本例10.7 8. 随机文件类RandomAccessFile 知识点解析:随机文件类用于进行随意位置、任意类型的文件访问,并且在文件的读取方式中支持文件的任意读取而不只是顺序读取。 示例:课本例10.8 四、设计题(以下题目1、2题必做,第3题选做) 1. 利用文件字节输入输出流和数据字节输入输出流,将"九九乘法表"写入整数类型文件,并输出显示。 2. 将Java的关键字保存在一个文本文件中,判断一个字符串是否为Java的关键字。 3. 使用文件字节输入/输出流,合并两个指定文件;当文件中的数据已排序时,合并后的数据也要求是已排序的。

java实验11 输入输出流 - 答案

实验输入输出流 一、实验目的 1、掌握文件字节流的用法; 2、掌握文件字符流的用法; 3、掌握缓冲流的用法; 二、实验内容与步骤 1、编写程序,实现将诗句写入c:\小池.txt文件中,然后再从该文件中读出并打印输出。宋诗《小池》 作者:杨万里 泉眼无声惜细流, 树荫照水弄轻柔。 小荷才露尖尖角, 早有蜻蜓立上头。 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; public class PoemWrite { public static void main(String[] args) { Scanner reader=new Scanner(System.in); String s; try{ FileWriter outOne=new FileWriter("c:\\小池.txt"); BufferedWriter outTwo=new BufferedWriter(outOne); while(!(s=reader.nextLine()).equals("0")){ outTwo.write(s); outTwo.newLine(); } outTwo.flush(); outTwo.close(); outOne.close(); FileReader inOne=new FileReader("c:\\小池.txt"); BufferedReader inTwo=new BufferedReader(inOne); while((s=inTwo.readLine())!=null){

实验7 输入输出流

实验七字符串和日期类 一、实验目的:掌握字符输入、输出流用法。 二、实验要求: 1.按如下描述,编程实现: 现在有如下格式的成绩单(文本格式)score.txt: 姓名:张三,数学72分,物理67分,英语70分。 姓名:李四,数学92分,物理98分,英语88分。 姓名:王五,数学68分,物理80分,英语77分。 要求按行读取成绩单,并在该行的末尾加上该同学的总成绩,然后再将该行写入到一个名字为scoreAnalysis.txt的文本中。 提示:通过BufferedReader和BufferedWriter实现读写文本文件; 通过Scanner对象分析出字符串中的数据。 2.分析程序的输出结果: import java.io.*; public class E { public static void main(String args[]) { try{ FileOutputStream out=new FileOutputSteam(“hello.txt”); FileInputStream in=new FileInputStream(“hello.txt”); byte content[]=”ABCDEFG”.getBytes(); StringBuffer bufferOne=new StringBuffer(); StringBuffer bufferTwo=new StringBuffer(); int m=-1; byte tom[]=new byte[3]; out.write(content); out.close(); while((m=in.read(tom,0,3))!=-1){ String s1=new String(tom,0,m); bufferOne.append(s1); String s2=new String(tom,0,3); bufferTwo.append(s2); } in.close(); System.out.println(bufferOne); System.out.println(bufferTwo); } catch(IOException e){} } }

输入、输出流程序设计实验

实验五输入、输出流程序设计实验 【实验目的】 1.理解输入/输出流相关概念 2.掌握输入/输出流的常用操作 3.理解文件概念 4.掌握文件流的常用操作 【实验内容】 2.打开指定的一个文本文件,在每一行前面加上行号。(1.2题二选一)程序如下: #include #include #define BUFF_SIZE 50 int main() { char file[256],buff[BUFF_SIZE+1]; FILE* fin = NULL; int bL = 1; int iLN = 0; // line number printf("请输入需要处理的文件名路径:\n"); scanf("%s",file); if (NULL == (fin = fopen(file,"r"))) { printf("错误. \n"); return -1; } while (NULL != fgets(buff,BUFF_SIZE,fin)) {

if (bL) printf("%3d:%s",++iLN,buff); else printf("%s",buff); if (buff[strlen(buff)-1] == '\n') bL = 1; else bL = 0; } fclose(fin); } 运行结果: 3.编写程序,从键盘输入5个学生的学生信息,包括学号、姓名、3门课程的成绩,计算3门课的平均成绩,将全部信息以二进制方式保存到文件中。 程序如下: #include #include

java 输入输出流实验

实验1 学读英文单词 1. 相关知识点 当程序需要读取磁盘上的数据或将程序中得到数据存储到磁盘时,就可以使用输入/输出流,简称I/O流。I/O流提供一条通道,用户可以通过该通道读取“源”中的数据或把数据传送到目的地。I/O流中的输入流的指向称作源,程序通过指向源的输入流读取源中的数据;输出流的指向称作目的地,程序通过指向目的地的输出流写入数据并把信息传递到目的地。 FileReader类是Reader的子类,该类创建的对象称为文件字符输入流。文件字符输入流按字符读取文件中的数据。FileReader流按顺序读取文件,只要不关闭流,每次调用读取方法时FileReader流就会依次读取文件中其余的内容,直到文件的末尾或流被关闭。 FileWriter类是Writer的子类,该类创建的对象称为文件字符输出流。文件字符输出流按字符将数据写入到文件中。FileWriter流按顺序写入数据,只要不关闭流,每次调用写入方法时FileWriter流就会依次向文件写入内容,直到流被关闭。 FileInputStream是InputStream的子类,该类创建的对象称为文件字节输入流。文件字节输入流按字节读取文件中的数据。FileInputStream流按顺序读取文件,只要不关闭流,每次调用读取方法时就依次读取文件中其余的内容,直到文件的末尾或流被关闭。 FileOutputStream类是OutputStream的子类,该类创建的对象称为文件字节输出流。文件字节输出流按字节将数据写入到文件中。FileOutputStream流按顺序写入数据,只要不关闭流,每次调用写入方法FileOutputStream流就会依次向文件写入内容,直到流被关闭。 BufferedReader类创建的对象称为缓冲输入流,该输入流的指向必须是一个Reader流,称作BufferedReader流的底层流,底层流负责将数据读入缓冲区,BufferedReader流的源就是这个缓冲区,缓冲输入流再从缓冲区中读取数据。 BufferedWriter类创建的对象称为缓冲输出流,缓冲输出流可以将BufferedWriter流和FileWriter流连接在一起,然后使用BufferedWriter流将数据写入缓冲区,FileWriter流作为BufferedWriter的底层流,负责将数据写入最终目的地。 2. 实验目的 掌握字符输入流和输出流的用法。 3. 实验要求 编写一个Java应用程序,其要求如下: (1)程序可以将一个由英文单词组成的文本文件读入到程序中。 (2)单击“下一个单词”按钮可以在一个标签中显示程序读入的一个单词。 (3)单击“发音”按钮可以听到标签上显示的单词的读音。 (4)用户可以使用文本编辑器编辑程序中用到的三个由英文单词组成的文本文件:training1.txt、training2.txt和training3.txt,这些文本文件中的单词需要用空格、逗号或回车符分隔。 (5)需要制作相应的声音文件,比如,training1.txt文件包含单词hello,那么在当前应用程序的运行目录中需要有hello.wav格式的声音文件。 4. 程序效果示例 5. 程序模板 按模板要求,将【代码1】~【代码5】替换为Java程序代码。 模板1:StudyMainClass.java

实验一 IO口输入、输出实验

贵州大学实验报告纸 实验一I/O口输入、输出实验 一、实验目的 掌握单片机P1口、P3口的使用方法。 二、实验要求 根据实验内容编写一个程序,并在实验仪上调试和验证。 三、实验内容 以P1口为输出口,接八位逻辑电平显示,LED显示跑马灯效果。以P3口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。 四、实验说明和电路原理图 P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。 本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区),八位逻辑电平输出电路原理图参见图1-1。八位逻辑电平显示电路原理图参见图1-2。 图1-2 八位逻辑电平显示

图1-1 八位逻辑电平输出 五、实验步骤 ㈠实验程序编写 1、实验程序: ;//****************************************************************** ;文件名: Port for MCU51 ;功能: I/O口输入、输出实验 ;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口),K1 ;到CPU模块的P3.1口; ;用8位数据线连接八位逻辑电平显示模块的JD4B到CPU模块的JD8(P1口)。 ;//****************************************************************** DIR BIT P3.0 ORG 0000H LJMP START ORG 0100H START: Output1: mov a, #0fEH mov r5, #8 loop1: CLR C mov C,DIR JC Output2 mov P1, a rl a Acall Delay djnz r5, loop1 Sjmp Output1

实验4 输入输出流

实验4 输入输出流 1实验目的 (1)深入理解C++的输入输出的含义与实现方法。 (2)掌握标准输入输出流的应用,包括格式输入输出。 (3)掌握对文件的输入输出操作。 2实验内容 建立两个磁盘文件f1.dat和f2.dat,编程实现以下工作: ①从键盘输入20个整数,分别存放在两个磁盘文件中(每个文件中存10个整数); ②读取f1.dat文件中的10个数,存放在f2.dat文件原有数据的后面; ③读取f2.dat中的20个整数,将它们按从小到大顺序保存在f2.dat文件中(不保留原有的 数据)。 参考程序 #include #include using namespace std; //VC++ 6.0要此行 //fun1函数从键盘输入20个整数,分别存放在两个磁盘文件中 void fun1() {int a[10]; ofstream outfile1("f1.dat"),outfile2("f2.dat"); //分别定义两个文件流对象 if(!outfile1) //检查打开f1.dat是否成功 {cerr<<"open f1.dat error!"<>a[i]; outfile1<>a[i]; outfile2<

最新c++课件第十三章 输入输出流(1)

c++课件第十三章输入输出流(1)

第13章输入输出流 13.1 C++的输入和输出 13.1.1输入输出的含义 (1)对系统指定的标准设备进行输入和输出。 (2)以外存磁盘文件为对象进行输入和输出。 (3)对内存指定的空间进行输入和输出。 13.1.2 C++的I/O对C的发展——类型安全和可扩展性13.1.3 C++的输入输出流 1. iostream类库中有关的类 图13.1

图13.2 图13.3 2. 与iostream类库有关的头文件 iostream fstream strstream stdiostream iomanip 3. 在iostream头文件中定义的流对象 4. 在iostream头文件中重载运算符 ostream operator << (char *); //用于向输出流插入一个字符串 cout<<"C++"; 相当于 cout.operator<<("C++"); 对于自己的类,可用11章的方法进行重载。13.2标准输出流

13.2.1 cout,cerr和clog流 1.cout流对象 (1)cout流是流向显示器的数据。 (2)输出基本类型数据时,可以不考虑数据的类型是什么。 (3)cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout流插入一个endl时,不论缓冲区 是否已满,都立即输出流中的所有数据,然后插入一 个换行符,并刷新流(清空缓冲区)。 2.cerr流对象 cerr流是标准错误流。cerr流被指定与显示器关联。cout 流通常是传送到显示器输出,但也可以被重定向输出到磁盘文件。 例13.1 解一元二次方程ax2+bx+c=0 #include #include using namespace std; void main() { float a,b,c,disc; cout<<"please input a,b,c:"; cin>>a>>b>>c; if (a==0) cerr<<"a is equal to zero,error!"<

实验五 输入输出流

实验五输入输出流 一、实验目的 1.掌握文件的使用 2.掌握字节I/O流、字符类I/O流、缓冲流、数据流等常用流的使用。 3.熟悉对象流、RandomAccessFile类的使用。 二、实验内容 1.利用各种常用IO流的处理方法,编写Java应用程序。 三、实验步骤与要求 第1题文件加密 编写一个Java应用程序,将已存在的扩展名为.txt的文本文件加密后存入另一个文本文件中。 package four; import java.io.*; public class file { public static void main(String args[]) { File readFile =new File("Student.txt"), writeFile =new File("Hello.txt"); String s="欢迎来到北京 welcome"; char b[]=s.toCharArray(); try{ FileWriter out=new FileWriter(readFile,true); out.write(b); out.close(); FileWriter tofile=new FileWriter ("hello.txt"); for(int i=0;i

tofile.write(secret); tofile.close(); FileReader inOne=new FileReader("Hello.txt"); int t=0; System.out.println("存入后:"); while((t=inOne.read(b,0,2))!=-1) { String str=new String(b,0,2); System.out.println(str); } inOne.close(); } catch (IOException e){ System.out.println(e); } } } 第2题读写基本类型数据 编写一个Java应用程序,将若干基本数据写入到一个文件,然后再按顺序读出。

相关文档
相关文档 最新文档