文档库 最新最全的文档下载
当前位置:文档库 › 实验九 输入输出流

实验九 输入输出流

实验九 输入输出流
实验九 输入输出流

实验九输入输出流

1.实验目的

1、掌握字符输入、输出流的用法

2、掌握使用Scanner类解析文件

3、掌握Console流的使用

2.实验内容

1、根据附录里的源代码,按照注释要求,完成代码填空,使程序能够运行

得出结果。

1) 实验1举重成绩单

2) 实验2统计英文单词

3) 实验3密码流

4) 实验4学读汉字

5)实验5 读取Zip文件

2、设计编写程序完成以下任务。

1)修改实验2,要求按字典顺序输出全部不相同的单词。

2)参考实验3编写一个程序,程序运行时,要求用户输入的密码是:hello。如果用户输入了正确的密码。程序将输出“你好,欢迎你!”。程序允许用户2次输入的密码不正确,一旦超过2次,程序将立刻退出。

3)在本机的磁盘系统中,找一个文件夹,利用File类的提供方法,列出该文件夹中的所有文件的文件名和文件的路径,执行效果如下:路径是xxx的文件夹内的文件有:

文件名:abc.txt

路径名:c:\temp\abc.txt

--------------------------------------------

文件名:def.txt

路径名:c:\temp\def.txt

知识点:File管理

4)使用java的输入输出流将一个文本文件的内容读出并在控制台将文件中的内容打印出来。(参考书上P289页)

5)从控制台输入一串字符串,将该串字符串写入到磁盘某位置上的out.txt文件中去。(参考教材P290页)

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

7)定义一个Person类,包含姓名、年龄、身份证号码属性。有一个带参数的构造方法用于对所有属性赋值,还有一个study的方法,里面只打印一条“我喜欢学习”的话。写一个Test类,里面实例化若干个Person对象,并将这些对象写入到obj.txt文件中去。

8)创建c:/test.txt文件并在其中输入"hello world"

创建一个输入流读取该文件中的文本

并且把小写的l变成大写L再利用输出流写入到d:\test.txt中

实现步骤:(1)在本地硬盘C盘下创建一个文件test.txt

(2)创建一个包含main()方法的类,并在main中编写代码

(3)运行代码并且测试结果

实现过滤器的功能

效果显示:

知识点:IO字符流、String常用方法

3.实验步骤

4.评分标准

1.A——内容功能完善,编程风格好,人机接口界面好;

2.B——内容功能完善,编程风格良好,人机接口界面良好;

3.C——完成必做内容;

4.D——能完成必做内容;

5.E——未按时完成必做内容,或者抄袭(雷同者全部为E).

参照书上实验按模版要求,将【代码】替换为Java程序代码,编写好完整的程序文档,最后运行得到的相关文件,把实验所得文件一起打包上交。(压缩包的文件名为:学号后三位和名字开头字母,如109zhh.RAR|ZIP)

附录:

实验1 举重成绩单

1.模板代码

AnalysisResult.java

import java.io.*;

import java.util.*;

public class AnalysisResult {

public static void main(String[] args) {

try{

File fRead=new File("d:\\score.txt");

File fWrite=new File("d:\\scoreAnalysis.txt");

Writer out=//【代码1】//以尾加方式创建指向文件fWrite的out流

BufferedWriter bufferWrite=//【代码2】//创建指向out的bufferWrite流

Reader in=//【代码3】//创建指向文件fRead的in流

BufferedReader bufferRead=//【代码4】//创建指向in的bufferRead流

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(FileNotFoundException e){

System.out.println(e.toString());

}

catch(IOException e){

System.out.println(e.toString());

}

}

}

Fenxi.java

import java.util.regex.*;

public class Fenxi {

public static double getTotalScore(String s){

String regex="\\d{1,5}";

double totalScore=0.0;

Pattern p = https://www.wendangku.net/doc/e218387801.html,pile(regex);

Matcher m = p.matcher(s);

while(m.find()) {

try{

totalScore=totalScore+Double.parseDouble(m.group());

}

catch(NumberFormatException e){

System.out.println(e.getMessage());

}

}

return totalScore;

}

}

实验2 统计英文单词字

1.模板代码

WordStatistic.java

import java.io.*;

import java.util.Scanner;

import java.util.Vector;

public class WordStatistic

{

Vector allWord,noSameWord;

File file=new File("d:\\english.txt");

Scanner sc=null;

String regex;

WordStatistic()

{

allWord=new Vector();

noSameWord=new Vector();

regex="[\\s\\d\\p{Punct}]+";

try{

sc=//【代码1】//创建指向file的sc

//【代码2】//sc调用useDelimiter(String regex)方法,向参数传递regex }catch(IOException exp){

System.out.println(exp.toString());

}

}

void setFileName(String name){

file=new File(name);

try{

sc=new Scanner(file);

https://www.wendangku.net/doc/e218387801.html,eDelimiter(regex);

}catch(IOException exp){

System.out.println(exp.toString());

}

}

public void wordStatistic()

{

try{

while(sc.hasNext()){

String word=sc.next();

allWord.add(word);

if(!noSameWord.contains(word)){

noSameWord.add(word);

}

}

}catch(Exception e){}

}

public Vector getAllWord()

{ return allWord;

}

public Vector getNoSameWord()

{ return noSameWord;

}

}

OutputWordMess.java

import java.util.*;

public class OutputWordMess {

public static void main(String args[]){

Vector allWord,noSameWord;

WordStatistic statistic=new WordStatistic();

statistic.setFileName("d:\\hello.txt");

//【代码3】//statistic调用wordStatistic方法

allWord=statistic.getAllWord();

noSameWord=statistic.getNoSameWord();

System.out.println("共有"+allWord.size()+"个英文单词");

System.out.println("有"+noSameWord.size()+"个互不相同英文单词");

System.out.println("按出现频率排列:");

int count[]=new int[noSameWord.size()];

for(int i=0;i

String s1=noSameWord.elementAt(i);

for(int j=0;j

String s2=allWord.elementAt(j);

if(s1.equals(s2)){

count[i]++;

}

}

}

for(int m=0;m

for(int n=m+1;n

if(count[n]>count[m]){

String temp=noSameWord.elementAt(m);

noSameWord.setElementAt(noSameWord.elementAt(n),m);

noSameWord.setElementAt(temp,n);

int t=count[m];

count[m]=count[n];

count[n]=t;

}

}

}

for(int m=0;m

double frequency=(1.0*count[m])/allWord.size();

System.out.printf("%s:%-7.3f",noSameWord.elementAt(m),frequency);

}

}

}

实验3 密码流

1.模板代码

PassWord.java

import java.io.*;

public class PassWord {

public static void main(String[] args) {

boolean success=false;

int count=0;

Console cons;

char[] passwd;

cons=System.console();

while(true){

System.out.print("输入密码:");

passwd=cons.readPassword();

count++;

String password= new String(passwd);

if(password.equals("tiger123")){

success=true;

System.out.println("您第"+count+"次输入的密码正确!");

break;

}else{

System.out.println("您第"+count+"次输入的密码"+password+"不正确!");

}

if(count==3){

System.out.println("您"+count+"次输入的密码都不正确!");

System.exit(0);

}

}

if(success){

try{

File file=new File("D:\\score.txt");

FileReader inOne=new FileReader(file);

BufferedReader inTow=new BufferedReader(inOne);

String s=null;

while((s=inTow.readLine())!=null){

System.out.println(s);

}

inOne.close();

inTow.close();

}catch(FileNotFoundException fe){

System.out.println(fe.toString());

}

catch(IOException ioe){

System.out.println(ioe.toString());

}

}

}

}

实验4 学读汉字

1.模板代码

ChineseCharacters.java

import java.io.*;

import java.util.StringTokenizer;

public class ChineseCharacters

{ public StringBuffer getChinesecharacters(File file)

{ StringBuffer hanzi=new StringBuffer();

try{ FileReader inOne=【代码1】 //创建指向文件f的inOne 的对象

BufferedReader inTwo=【代码2】 //创建指向文件inOne的inTwo 的对象

String s=null;

int i=0;

while((s=【代码3】)!=null) //inTwo读取一行

{ StringTokenizer tokenizer=new StringTokenizer(s," ,'\n' ");

while(tokenizer.hasMoreTokens())

{ hanzi.append(tokenizer.nextToken());

}

}

}

catch(Exception e) {}

return hanzi;

}

}

StudyFrame.java

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import javax.sound.sampled.*;

public class StudyFrame extends Frame implements ItemListener,ActionListener,Runnable { ChineseCharacters chinese;

Choice choice;

Button getCharacters,voiceCharacters;

Label showCharacters;

StringBuffer trainedChinese=null;

Clip clip=null;

Thread voiceThread;

int k=0;

Panel pCenter;

CardLayout mycard;

TextArea textHelp;

MenuBar menubar;

Menu menu;

MenuItem help;

public StudyFrame()

{ chinese=new ChineseCharacters();

choice=new Choice();

choice.add("training1.txt");

choice.add("training2.txt");

choice.add("training3.txt");

showCharacters=new Label("",Label.CENTER);

showCharacters.setFont(new Font("宋体",Font.BOLD,72)); showCharacters.setBackground(Color.green);

getCharacters=new Button("下一个汉字");

voiceCharacters=new Button("发音");

voiceThread=new Thread(this);

choice.addItemListener(this);

voiceCharacters.addActionListener(this);

getCharacters.addActionListener(this);

Panel pNorth=new Panel();

pNorth.add(new Label("选择一个汉字字符组成的文件")); pNorth.add(choice);

add(pNorth,BorderLayout.NORTH);

Panel pSouth=new Panel();

pSouth.add(getCharacters);

pSouth.add(voiceCharacters);

add(pSouth,BorderLayout.SOUTH);

pCenter=new Panel();

mycard=new CardLayout();

pCenter.setLayout(mycard);

textHelp=new TextArea();

pCenter.add("hanzi",showCharacters);

pCenter.add("help",textHelp);

add(pCenter,BorderLayout.CENTER);

menubar=new MenuBar();

menu=new Menu("帮助");

help=new MenuItem("关于学汉字");

help.addActionListener(this);

menu.add(help);

menubar.add(menu);

setMenuBar(menubar);

setSize(350,220);

setVisible(true);

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e)

{ System.exit(0);

}

});

validate();

}

public void itemStateChanged(ItemEvent e)

{ String fileName=choice.getSelectedItem();

File file=new File(fileName);

trainedChinese=chinese.getChinesecharacters(file);

k=0;

mycard.show(pCenter,"hanzi") ;

}

public void actionPerformed(ActionEvent e)

{ if(e.getSource()==getCharacters)

{ if(trainedChinese!=null)

{ char c=trainedChinese.charAt(k);

k++;

if(k>=trainedChinese.length())

k=0;

showCharacters.setText(""+c);

}

else

{ showCharacters.setText("请选择一个汉字字符文件");

}

}

if(e.getSource()==voiceCharacters)

{ if(!(voiceThread.isAlive()))

{ voiceThread=new Thread(this);

}

try{ voiceThread.start();

}

catch(Exception exp){}

}

if(e.getSource()==help)

{ mycard.show(pCenter,"help") ;

try{ File helpFile=new File("help.txt");

FileReader inOne=【代码4】 //创建指向文件helpFile的inOne 的对象 BufferedReader inTwo=【代码5】 //创建指向文件inOne的inTwo 的对象 String s=null;

while((s=inTwo.readLine())!=null)

{ textHelp.append(s+"\n");

}

inOne.close();

inTwo.close();

}

catch(IOException exp){}

}

}

public void run()

{ voiceCharacters.setEnabled(false);

try{ if(clip!=null)

{ clip.close()

}

clip=AudioSystem.getClip();

File voiceFile=new File(showCharacters.getText().trim()+".wav");

clip.open(AudioSystem.getAudioInputStream(voiceFile));

}

catch(Exception exp){}

clip.start();

voiceCharacters.setEnabled(true);

}

}

StudyMainClass.java

public class StudyMainClass

{ public static void main(String args[])

{ new StudyFrame();

}

}

实验5 读取Zip文件

1.模板代码

ReadZipFile.java

import java.io.*;

import java.util.zip.*;

public class ReadZipFile

{ public static void main(String args[])

{ File f=new File("book.zip");

File dir=new File("Book");

byte b[]=new byte[100];

dir.mkdir();

try

{ ZipInputStream in=new ZipInputStream(new FileInputStream(f));

ZipEntry zipEntry=null;

while((zipEntry=in.getNextEntry())!=null)

{ File file=new File(dir,zipEntry.getName());

FileOutputStream out=new FileOutputStream(file);

int n=-1;

System.out.println(file.getAbsolutePath()+"的内容:");

while((n=in.read(b,0,100))!=-1)

{ String str=new String(b,0,n);

System.out.println(str);

out.write(b,0,n);

}

out.close();

}

in.close();

}

catch(IOException ee)

{

System.out.println(ee); }

}

深圳大学 实验报告 课程名称: 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,;

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.实验目的 掌握字符输入、输出流用法; 掌握使用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、*;

实验四 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/e218387801.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);

深圳大学实验报告 实验课程名称:程序设计实验与课程设计 实验项目名称:实验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方法。 把信息直接从文件读出来并赋值给奥特曼和怪兽,需要重载》运算符作为友元; 把奥特曼和怪兽的值写入文件,要求重载《运算符作为友元

福建农林大学金山学院实验报告 系(教研室):________ 专业:计算机科学与技术年级: _________________ 实验课程:面向对象程序设计姓名: ______ 学号:__________ 实验室号__________ 计算机号___________ 实验时间:_____________ 指导教师签字:____________ 成绩:_____________ 实验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) {

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

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

实验输入输出流 一、实验目的 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){

9.3 练习题解答 1.在C++的输入输出操作中,“流”的概念如何理解?从流的角度说明什么是提取操作?什么是插入操作? 答:C++语言将输入信息和输出信息都看作为信息流,或者是字符流,或者是二进制码流,因此,称为输人流和输出流。输人流是输入的信息流,输出流是输出的信息流。 从“流”的角度来讲,提取操作是从输入信息流中读取信息,将它存放在机器中;插入操作是向输出信息流中加入信息,将它流向某个指定的设备或文件中去。 2.系统预定义的流类对象中,cin和cout的功能是什么? 答:cin是istream类的对象,它表示标准输入流对象,即键盘输入。 cout是ostream类的对象,它表示标准输出流对象,即显示屏幕输出。 3.屏幕输出一个字符串有哪些方法?屏幕输出一个字符有哪些方法? 答:屏幕输出一个字符串通常使用下述方法。 (1)标准输出流对象cout和插入运算符<<。例如, cout <<”output a string! \n”; (2)使用成员函数write()输出一个字符串。例如, cout.write(”string”,strlen(”string”)); 屏幕输出一个字符通常也有两种方法。 (1)使用cout和插入运算符<<。 (2)例如。 cout<<’a’<<’,’<<’b’<<endl; (2)使用成员函数put()输出一个字符。例如, cout.put(’a“)。put(’,’).put(‘b’).put (’\n’); 4.键盘输入一个字符串有哪些方法?键盘输入一个字符有哪些方法? 答:键盘输入一个字符串通常使用下述方法: (1)使用标准输入流对象cin和提取符>>。 例如 cin>>a>>b; (2)使用成员函数read()输入一个字符串。 例如 char s[80]=” " cin.read(s,80); (3)使用成员函数getline()输入一行字符串。 例如 char buf[80]; cin.getline(buf,80)5 键盘输入一个字符通常用下述两种方法。 (1)使用cin和提取符>>。 例如 Char cl,c2; cin>>cl>>c2; (2)使用成员函数get()输入一个字符。 例如

实验五输入、输出流程序设计实验 【实验目的】 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

实验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

贵州大学实验报告纸 实验一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

福建农林大学金山学院实验报告 系(教研室):信息与机电工程系专业:计算机科学与技术年级:2010级 实验课程:面向对象姓名:陈凯斯学号:100202053实验室号A605 计算机号J605s037 实验时间:2011/12/19 指导教师签字:成绩: 实验9 C++的I/O流 一、实验目的和要求 (1) 掌握一般类型数据的输入输出格式控制方法。 (2) 掌握重载“<<”和“>>”的方法。 (3) 掌握对文件的输入输出操作方法。 二、实验内容和原理 1、编程实现下面要求:打印有符号数和无符号数200;以数据符号左对齐、数据本身右对齐方式输出整数9999,域宽为15;将十进制整数300以0x开头的十六进制格式输出;用前导符号$格式打印9.876,域宽为8。 2、定义一个分数类fraction,通过重载运算符“<<”以分数形式输出分数的结果,如将三分之二输出为2/3。 3、编写一个程序来统计文件file.txt中的某个特定英文字符的个数。(如:用户输入“a”,则统计出该文件中出现“a”的次数)。 三、实验环境 1. 硬件:PC机; 2. 软件:Windows操作系统、Visual C++ 6.0 四、算法描述及实验步骤 (1)#include int main() { int a=200,b=9999,c=300; double d=9.876; cout.setf(ios::showpos); cout<

实验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<

第9章输入/输出流 考点01 I/O流 规则01:由于输入/输出流涉及的内容均为实际应用的API,所以本章相关知识点详见附IO 包。 示列01:请问,File类是否代表文件系统中的一个文件或一个目录? 请选择一个正确答案: (1)是 (2)否 答案:(1) 详解:本题考查的核心是File类的用途。定义在java.io包中的File类用来代表文件系统中的一个文件或目录内一系列文件的集合,所代表的文件或路径可能存在也可能不存在。 示例02:请问,以下哪些定义在java.io.File类上的方法能够抛出异常? 请选择所有正确答案: (1)getCanonicalPath() (2)getCanonicalFile() (3)getAbsolutePath() (4)getAbsolutxFilc() (5)createTempFile() (6)createNewFile() (7)mkdir() (8)mkdirs() (9)toURL() 答案:(1)(2)(5)(6)(9) 详解:本题考查的核心是File类的方法定义。详情参考API。 示例03:请问,以下哪些类提供了创建一个目录的方法? 请选择一个正确答案: (1)File (2)DataOutput (3)Directory (4)FileDescriptor (5)FileOutputStream 答案:(10) (6)详解:本题考查的核心是File类上定义的创建目录的方法。File类上其定义了两个用于创建目录的方法,分别为和方法。方法用于创建一个由类代表的目录。 Mkdirs()方法用于创建一个由File类代表的目录,包括创建父目录。 示例04:请问以下关于File类的描述哪些是正确的? 请选择所有正确的答案: (1)File类可以用于改变当前工作路径。

实验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

(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

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应用程序,将若干基本数据写入到一个文件,然后再按顺序读出。

相关文档