《Java面向对象程序设计》实验-实验八(输入输出流)
java输入输出流实验报告总结
![java输入输出流实验报告总结](https://img.taocdn.com/s3/m/7e190274a22d7375a417866fb84ae45c3b35c22a.png)
java输入输出流实验报告总结Java输入输出流是Java中非常重要的概念,也是Java程序设计的基础。
在Java 程序中,输入输出流用于处理与设备之间的数据传输,例如键盘、鼠标、文件等。
Java的输入输出流主要包含两种类型:字节流和字符流。
字节流以字节为最小读写单位,而字符流以字符为最小读写单位。
Java的输入流有很多种类型,例如:InputStream、ByteArrayInputStream、FileInputStream等。
这些输入流的共同特点是读取外部数据到程序中。
Java的输出流也有多种类型,例如:OutputStream、ByteArrayOutputStream、FileOutputStream等。
这些输出流的共同特点是将程序中的数据输出到外部。
下面将以实验报告的形式进行总结,详细介绍Java输入输出流的原理和使用方法。
实验一:字节流输入输出1. 实验目的:掌握字节流输入输出的基本使用方法。
2. 实验内容:编写一个程序,实现从文件中读取数据,然后将数据输出到另一个文件中。
3. 实验步骤:a. 创建一个输入流对象,用于读取原始文件的数据。
b. 创建一个输出流对象,用于将读取到的数据输出到目标文件中。
c. 循环读取输入流中的数据,直到读取到文件末尾。
d. 将读取到的数据写入输出流中。
e. 关闭输入流和输出流。
4. 实验结果:成功读取原始文件中的数据,并将数据输出到目标文件中。
实验二:字符流输入输出1. 实验目的:掌握字符流输入输出的基本使用方法。
2. 实验内容:编写一个程序,实现从键盘输入文字,然后将文字输出到屏幕上。
3. 实验步骤:a. 创建一个字符输入流对象,用于读取键盘输入的文字。
b. 创建一个字符输出流对象,用于将读取到的文字输出到屏幕上。
c. 循环读取输入流中的文字,直到读取到换行符。
d. 将读取到的文字写入输出流中。
e. 关闭输入流和输出流。
4. 实验结果:成功从键盘输入文字,并将文字输出到屏幕上。
Java面向对象程序设计第08章_Java-IO流
![Java面向对象程序设计第08章_Java-IO流](https://img.taocdn.com/s3/m/ad4f8fe4a8956bec0875e358.png)
int read() //返回字节值 int read(byte b[]) //返回读取的字节个数 int read(byte b[],int off,int len)
信息工程学院本科课程
8.3.1 文件字节流
FileOutputStream以字节为单位写文件
8.2 File类
3、文件的属性
关于File类的其它方法,是不需要死记硬背的,在 需要时可以查看JDK文档,就会明白怎么使用。初 步接触了File类,我们发现File类不能访问文件的内 容,即不能够从文件中读取数据或往文件里写数据 ,它只能对文件本身的属性进行操作:创建、删除 、重命名、判断读写权限、设置和查询最近修改时 间等
public void write(byte b[]) public void write(byte b[],int off,int len)
调用close()方法关闭流 由于汉字在内存中占用两个字节,如果
使用字节流,读取不当会出现乱码现象 例FileStream.java
信息工程学院本科课程
4、运行可执行文件
例FileRuntimeTest.java
信息工程学院本科课程
8.2 File类
5、创建目录
public boolean mkdir()方法创建目录
6、罗列目录中的文件
public String [] list(); public File [] listFiles(); 添加文件名过滤器(FilenameFilter)参数 public String [] list(FilenameFilter obj); public File [] listFiles(FilenameFilter obj); 需要实现FilenameFilter接口的accept方法 例12.2
java输入输出流
![java输入输出流](https://img.taocdn.com/s3/m/3bcd695333687e21af45a992.png)
f.mkdir();
}
File filename =newFile("c:/me","text1.txt");
File fname =newFile("d:/java","text2.txt");
if(!filename.exists() || !fname.exists()) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
try{
while((str1 = bfr1.readLine()) !=null) {
fw.write("第"+(count++)+"行"+"\t"+str1+"\r\n");
}
}catch(IOException e) {
e.printStackTrace();
}finally{
try{
fw.close();
bfr1.close();
bfr2.close();
}catch(IOException e) {
e.printStackTrace();
}}Leabharlann }}txt1.txt:
计算机科学与技术学院实验报告(电子版)
课程:Java程序设计实验
实验名称
输入/输出流
指导老师
姓名
学号
班级
实验地点
实验日期
成绩
一、实验内容:
1.编程将保存在本地前的图片文件复制一份
Java的输入与输出流(实验报告)
![Java的输入与输出流(实验报告)](https://img.taocdn.com/s3/m/7a543195a32d7375a517801c.png)
成都大学实验报告实验项目名称Java的输入与输出流一、实验目的:1. 理解I/O流的概念,掌握其分类2. 掌握文本文件读写、二进制文件读写二、实验内容(包括源程序及相关说明):1. 分别使用FileWriter 和BufferedWriter 往文件中写入10万个随机数,比较用时。
源代码如下:(1)import java.io.*;public class Ex1_1 {public static void main(String[] args) throws IOException{long t=System.currentTimeMillis();FileWriter fw =new FileWriter("d:\\Ex1.txt");for(int i=1;i<=100000;i++){fw.write((int)(Math.random()*10000)+" \n");}fw.close();t=System.currentTimeMillis()-t;System.out.println("The elapsed: "+t);}}(2)import java.io.*;public class Ex1_1 {public static void main(String[] args) throws IOException{long t=System.currentTimeMillis();BufferedWriter fw=new BufferedWriter(new FileWriter("d:\\Ex1.txt"));for(int i=1;i<=100000;i++){fw.write((int)(Math.random()*10000)+"\n");}fw.close();t=System.currentTimeMillis()-t;System.out.println("The elapsed: "+t);}}2. 生成一个html文件,使其能显示2的幂次(0~9)的表格如下:代码如下:import java.io.*;public class Ex1_1 {public static void main(String[] args) throws IOException{BufferedWriter bw=new BufferedWriter(new FileWriter("d:\\Ex2.html"));bw.write("<table border=1 align=center width=200 height=250>");bw.newLine();bw.write("<tr><td align=center>Power of 2<td align=center>Value</tr>");for(int i=0;i<=9;i++){bw.write("<tr><td align=center>"+i+"<td align=center>"+Math.pow(i, 2)+"</tr>");}bw.write("</table>");bw.newLine();bw.close();}}3. 在文本文件bigbook.txt中包含有很长篇幅的英语短文,编写程序要求统计文件的所有短文中包含英文字母“A”的个数,并显示统计的时间。
java 输入输出流实验
![java 输入输出流实验](https://img.taocdn.com/s3/m/207d9f93dd88d0d233d46a9b.png)
}
catch(Exception exp){}
clip.start();
voiceWord.setEnabled(true);
}
}6.实验指导
(1)BufferedReader对象调用readLine方法可读取文件中的一行内容。
catch(IOException exp){}
}
}
public void run()
{
voiceWord.setEnabled(false);
try{
if(clip!=null)
{
clip.close();
}
clip=AudioSystem.getClip();
File voiceFile=new File(showWord.getText().trim()+".wav");
add(pCenter,BorderLayout.CENTER);
menubar=new JMenuBar();
menu=new JMenu("帮助");
help=new JMenuIter("关于学单词");
help.addActionListener(this);
menu.add(help);
menubar.add(menu);
FileReader类是Reader的子类,该类创建的对象称为文件字符输入流。文件字符输入流按字符读取文件中的数据。FileReader流按顺序读取文件,只要不关闭流,每次调用读取方法时FileReader流就会依次读取文件中其余的内容,直到文件的末尾或流被关闭。
《Java面向对象程序设计》实验-实验八(输入输出流)
![《Java面向对象程序设计》实验-实验八(输入输出流)](https://img.taocdn.com/s3/m/4f43844455270722192ef79f.png)
广西科技大学计通学院《Java面向对象程序设计》实验实验八输入输出流学生姓名:×××学号:×××班级:×××指导老师:×××专业:计算机科学与技术提交日期:×××年××月××日实验报告内容1.实验目的掌握字符输入、输出流用法;掌握使用Scanner类解析文件;掌握Console流的使用。
2.实验内容实验教材-第12章实验1、2、3字符输入输出流;Scanner类和Console类。
要求:完善程序,给出实验结果截图;完成试验后练习。
3.程序代码及运行结果:实验1 举重成绩单//AnalysisResult.javaimport java.io.*;import java.util.*;public class AnalysisResult {public static void main(String[] args) {File fRead=new File("score.txt");File fWrite=new File("scoreAnalysis.txt");try{Writer out=new FileWriter(fWrite);BufferedWriter bufferWrite=new BufferedWriter(out);Reader in=new FileReader(fRead);BufferedReader bufferRead=new BufferedReader(in);String str=null;while((str=bufferRead.readLine())!=null){doubletotalScore=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.javaimport java.util.*;public class Fenxi {public static double getTotalScore(String s) {String regex = "[^0123456789.]";String digitMess = s.replaceAll(regex,"*");StringTokenizer fenxi = new StringTokenizer(digitMess,"*");double totalScore=0;while(fenxi.hasMoreTokens()){doublescore=Double.parseDouble(fenxi.nextToken());totalScore=totalScore+score;}return totalScore;}}//score.txt:张三,抓举成绩106kg,挺举189kg。
实验八流类库与输入输出
![实验八流类库与输入输出](https://img.taocdn.com/s3/m/6c34f5a9c67da26925c52cc58bd63186bdeb925b.png)
实验⼋流类库与输⼊输出实验报告课程:⾯向对象技术学号:1010431079 姓名:郝祥海班级:2010级计算机软件(嵌⼊式系统)1班教师:周晓计算机科学与技术系实验⼋流类库与输⼊输出⼀、实验⽬的及要求1.熟悉流类库中常⽤的类及其成员函数的⽤法;2.掌握标准输⼊/输出及格式控制;3.掌握对⽂件的应⽤⽅法。
⼆、实验环境硬件:计算机软件:Microsoft Visual C++三、实验内容1.声明⼀个学⽣类数组,输⼊数据,显⽰出来,使⽤I/O流把此数组的内容写⼊磁盘⽂件,再显⽰出⽂件内容。
学⽣类具有的属性如下:姓名name、学号number、班号classno、性别sex、出⽣⽇期birthday,其中“出⽣⽇期”声明为⼀个“⽇期”类内嵌⼦对象。
四、实验结果(附截图)五、总结通过本次实验,我了解到流是⼀种抽象,它负责在数据的⽣产者和消费者之间建⽴联系,并管理数据的流动。
我对⽂件的输⼊输出流有了更深的了解。
六、附录(源程序清单)#include#include#includeusing namespace std;class Student{public:Student(string n,int nu,int cl,char s);string GetName(){return name;}int GetNumber(){return number;}int GetClassno(){return classno;}char GetSex(){return sex;}private:string name;int number;int classno;char sex;};Student::Student(string n,int nu,int cl,char s):name(n),number(nu),classno(cl),sex(s){}int main(){Student a[3] = {Student("Frank",101,1,'M'), Student("Lucy",201,2,'W'), Student("Mike",301,3,'M')}; int i;for(i=0;i<3;i++){ cout << "姓名\t" << a[i].GetName()<< "\t学号\t" << a[i].GetNumber()<< "\t班号\t" << a[i].GetClassno()<<"\t性别\t"<<< endl;}ofstream f;f.open("C:\\student.txt", ios::out);for(i=0;i<3;i++){f << "姓名\t" << a[i].GetName()<< "\t学号\t" << a[i].GetNumber()<< "\t班号\t" << a[i].GetClassno()<<"\t性别\t"<<< endl;}cout<cout<<"student.txt⽂件中的内容如下"<f.close();ifstream f1("C:\\student.txt", ios::in);char ch;while(f1.get(ch))cout<return 0;}。
java08(第8章输入输出流)
![java08(第8章输入输出流)](https://img.taocdn.com/s3/m/74814ebbfd0a79563c1e7246.png)
在java.io包中定义了很多这二个基本类具体实现 包中定义了很多这二个基本类具体实现 输入输出功能的子类, 输入输出功能的子类,表8.1为部分常用字节输入 为部分常用字节输入 流类和字节输出流子类的功能。 流类和字节输出流子类的功能。
表8.1
类 名 FileInputStream 和 FileOutputStream ByteArrayInputStream和 ByteArrayOutputStream ObjectInputStream 和 ObjectOutputStream FilterInputStream 和 FilterOutputStream DataInputStream 和 DataOutputStream BufferedInputStream 和 BufferedOutputStream
【例8-1 】
1. /* 读取文件 */ 2. import java.io.FileInputStream; 3. import javax.swing.JOptionPane; 4. class Example8_1 5. { public static void main( String args[ ]) 6. { byte buffer[ ] = new byte[2056]; 7. String str; 8. try{ 9. File file=new File("d:/jtest/test.dat"); 10. FileInputStream fileInput = new FileInputStream(file); 11. int bytes = fileInput.read( buffer, 0, 2056 ); //读到的字节数 读到的字节数 12. str = new String( buffer, 0, bytes ); 13. } 14. catch(Exception e) 15. { 16. str= e.toString(); 17. } 18. JOptionPane.showMessageDialog(null,str); 19. System.exit(0); //退出程序 退出程序 20. } 21. }
java输入输出流实验报告总结】
![java输入输出流实验报告总结】](https://img.taocdn.com/s3/m/fe81a0e60129bd64783e0912a216147917117ec9.png)
java输入输出流实验报告总结】Java输入输出流实验报告总结在本次实验中,我们学习了Java的输入输出流的概念和用法。
输入输出流是Java中用于处理输入和输出操作的工具。
通过输入流,我们可以将外部数据输入到程序中进行处理,通过输出流,我们可以将程序中的数据输出到外部文件或设备上。
在本次实验中,我们通过几个具体的示例来探索输入输出流的不同用法和特性,以期更好地理解和掌握它们的使用。
首先,我们学习了如何使用FileInputStream和FileOutputStream这两个类来进行字节流的输入和输出操作。
这两个类分别用于从指定文件中读取字节数据和将字节数据写入到指定文件中。
通过这两个类,我们可以实现文件的拷贝、移动、创建等功能。
同时,我们还了解了如何使用BufferedInputStream和BufferedOutputStream这两个类来提高读写效率。
这两个类可以通过缓存数据来减少对底层系统的IO操作次数,从而提高读写速度。
接下来,我们学习了如何使用FileReader和FileWriter这两个类进行字符流的输入和输出操作。
这两个类与字节流的输入输出类似,但它们处理的是字符数据。
通过这两个类,我们可以读取和写入文本文件中的字符数据。
我们还了解了字符编码和字符集的概念,并学习了如何使用InputStreamReader和OutputStreamWriter来进行字符流和字节流之间的转换。
除了字节流和字符流,我们还学习了对象流的使用。
对象流可以将Java 对象直接写入到文件中,也可以从文件中读取Java对象。
这在处理一些复杂的对象数据时非常有用。
我们通过使用ObjectInputStream和ObjectOutputStream这两个类,实现了对象的读写操作。
需要注意的是,被写入和读取的对象必须实现Serializable接口,否则会抛出NotSerializableException异常。
在实验过程中,我们还探索了如何使用标准输入输出流。
java输入输出实验报告
![java输入输出实验报告](https://img.taocdn.com/s3/m/4621ff68cec789eb172ded630b1c59eef8c79a35.png)
java输入输出实验报告Java输入输出实验报告引言:Java是一种广泛应用的编程语言,其输入输出(Input/Output,简称I/O)功能对于程序的交互和数据处理至关重要。
本实验旨在通过实际操作,探索Java中的输入输出机制,并深入了解其原理和应用。
一、实验目的通过本次实验,我们的目标是:1. 理解Java中的输入输出概念和基本原理;2. 掌握Java中的标准输入输出流(System.in和System.out)的使用;3. 学会使用Java中的文件输入输出流,实现对文件的读写操作;4. 熟悉Java中的异常处理机制,处理输入输出过程中的异常情况。
二、实验环境本次实验所需的环境和工具如下:1. Java开发工具(如Eclipse、IntelliJ IDEA等);2. 一台配置良好的计算机。
三、实验过程1. 标准输入输出流的使用在Java中,标准输入流(System.in)用于接收用户的输入,标准输出流(System.out)用于向屏幕输出信息。
我们可以通过Scanner类来实现对标准输入流的读取,通过System.out.println()方法实现对标准输出流的输出。
下面是一个示例代码:```javaimport java.util.Scanner;public class StandardIOExample {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入您的姓名:");String name = scanner.nextLine();System.out.println("您好," + name + "!欢迎使用Java输入输出功能。
"); }}```2. 文件输入输出流的使用除了标准输入输出流,Java还提供了FileInputStream和FileOutputStream类,用于实现对文件的读写操作。
面向对象设计原则实验报告实验08
![面向对象设计原则实验报告实验08](https://img.taocdn.com/s3/m/741aec2c6fdb6f1aff00bed5b9f3f90f76c64d37.png)
设计模式实验报告1.现在有一种空调,它支持3种模式:加热,制冷和除湿。
例如,当室温低于20度时,选择加热模式,再选择温度为20度,空调将输送热风直到室温升至20度;当室温高于26时,选择制冷模式,温度设置为26度时,将输送冷风直到室温降至26度;在选择除湿模式时,空调将室内空气循环抽湿。
现采用设计模式为空调设计应用程序,将来空调可能需要增加支持新的模式,应采取什么设计模式?简要说明选择的理由。
应采取策略模式。
在策略模式中,一个类的行为或其算法可以在运行时更改。
我们将冷风模式、热风模式以及除湿模式可以理解为各种不同的算法,在不同的场景下选择不同的模式。
2.Linux和Windows的API结构和调用方法非常不同,例如创建进程,Linux使用fork(),而Windows使用CreateProcess()。
现在你已经有一个基于Windows平台的应用程序,要迁移到Linux上,应使用什么设计模式实现这个需求?简要说明选择的理由。
应选择适配器模式。
适配器模式是作为两个不兼容的接口之间的桥梁。
通过将一个类的接口转换成客户希望的另外一个接口,从而使原本由于接口不兼容而不能一起工作的那些类可以一起工作。
依赖已有的Windows程序,实现Linux 上的目标接口即可实现这一需求。
3.某软件公司基于面向对象技术开发了一套图形界面显示构件库,在使用该库构建某图形界面时,用户要求为界面定制一些特效显示效果,如带滚动条、能够显示艺术字体的透明窗体等。
针对这种需求,公司采用哪种设计模式最为灵活?简要说明选择的理由。
应选择装饰模式。
装饰模式是一种对象结构型模式,可动态地给一个对象增加一些额外的职责。
通过装饰模式,可以在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;当需要动态地给一个对象增加功能,这些功能可以再动态地被撤销时可使用装饰模式。
根据题目的描述,需要开发的是图形界面构件库,并要求为图形界面提供一些定制的特效,例如,带滚动条的图形界面,能够显示艺术字体且透明的图形界面等。
JAVA输入输出流和文件操作
![JAVA输入输出流和文件操作](https://img.taocdn.com/s3/m/424b9f8759f5f61fb7360b4c2e3f5727a5e924b0.png)
JAVA输入输出流和文件操作
1、JAVA输入输出流
Java的输入/输出流机制是Java中最基本的控制机制,它是把Java 程序和外部文件和网络服务之间建立的数据传输通道,是Java程序访问来自外部资源的基本手段。
Java的输入/输出流机制是Java中最基本的控制机制,它是把Java 程序和外部文件和网络服务之间建立的数据传输通道,是Java程序访问来自外部资源的基本手段。
Java的输入/输出流机制是将不同的数据源统一到同一结构,从而使Java程序与各种外部资源(文件、网络服务)之间可以进行输入/输出操作。
普通的Java程序可以使用这些IO流来读取和写入文件,从而实现文件的操作。
Java的输入/输出流系统分为字节流和字符流两种。
字节流是用来处理二进制数据流的,可以用来处理原始数据流;而字符流是用来处理字符流的,可以用来处理文本文件。
2、JAVA文件操作
文件是操作系统中用来存储信息的基本单位,在JAVA编程中,我们使用File来操作文件,File类是java.io包中的类,它是为了访问底层操作系统提供的文件和目录的操作方法。
File类可以用来操作一些文件系统相关的信息,比如:文件名、文件大小、文件是否存在等等,我们可以使用File类来实现文件的创建、删除、复制、移动等操作。
另外,如果要实现文件的读写操作。
Java实验 输入输出
![Java实验 输入输出](https://img.taocdn.com/s3/m/0b226b026bd97f192279e940.png)
实验八输入输出【开发语言及实现平台或实验环境】Windows2000或XP,JDK1.6【实验目的】了解Java输入输出流类的基本使用方法。
【实验要求】掌握不同类型的输入输出流类,标准数据流、文件流、数据输入输出流、对象流等。
【实验内容】使用输入输出流类1.使用标准数据流的应用程序标准数据流指在字符方式下(如DOS提示符)程序与系统进行输入输出的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。
(1)程序功能:将键盘上输入的字符在屏幕上显示出来。
(2)编写LX5_3.java程序文件,源代码如下。
class LX5_3{public static void main(String[]args)throws java.io.IOException{byte buffer[]=new byte[10];System.out.println("从键盘输入不超过10个字符,按回车键结束输入:");int count=System.in.read(buffer);//读取输入的字符并存放在缓冲区buffer中System.out.println("保存在缓冲区buffer中元素的个数为:"+count);System.out.println("buffer中各元素的值为:");for(int i=0;i<count;i++){System.out.print(""+buffer[i]);//在屏幕上显示buffer元素的值}System.out.println();System.out.println("输出buffer字符元素:");System.out.write(buffer,0,buffer.length);}}(3)编译LX5_3.java文件。
java输入输出流试验
![java输入输出流试验](https://img.taocdn.com/s3/m/8c02736959fafab069dc5022aaea998fcc224072.png)
java输入输出流试验输入输出流一、实验目的:熟悉java的文件读写机制,练习输入输出流的使用。
二、实验内容:1.在键盘上输入10个整数,从小到大排序。
2、接收键盘输入的字符串,用fileinputstream类将字符串写入文件,用fileoutputstream类读出文件内容显示在屏幕上。
3.逐行读出文本文件的内容,为读出的每一行添加行号,然后将其写入另一个文件。
3、测试要求:1.通过实验掌握文件输入输出流的使用方法;2.程序必须能够从键盘接收字符串并保存在文件中;3.程序必须能够读出文件内容显示在屏幕上;4.写出实验报告。
四、实验步骤:1.在键盘上输入10个整数,从小到大排序。
包装测试;importjava.io.bufferedreader;importjava.io.ioexception;importjava.io.inputstre amreader;publicclassgui_21{publicstaticvoidmain(string[]args)throwsioexception{//TODOAUATO生成MethodSubbufferedReaderbr=newbufferedreader(newstringstr;intarray[]=newint[10];for(inti=0;i<10;i++){系统出来Println(\请输入一个整数:\);str=br。
readline();array[i]=integer.parseint(str);inputstreamreader(system.in));}}}对于(intj=0;j<9;j++){for(intm=0;m<10;m++){}如果(m!=9)system.out.print(array[m]+\);system.out.print(array[m]);else对于(intk=j+1;k<10;k++){if(array[k]inttemp=数组[k];数组[k]=数组[j];数组[j]=temp;}2、接收键盘输入的字符串,用fileinputstream类将字符串写入文件,用fileoutputstream类读出文件内容显示在屏幕上。
Java中的输入输出流操作详解
![Java中的输入输出流操作详解](https://img.taocdn.com/s3/m/fdd918eb48649b6648d7c1c708a1284ac85005c6.png)
Java中的输入输出流操作详解Java是一种面向对象的编程语言,广泛应用于各种领域。
在Java中,输入输出流是非常重要的概念,它提供了一种机制来实现程序与外部世界的交互。
本文将详细介绍Java中的输入输出流操作,包括输入流和输出流的概念、常用的输入输出流类以及它们的用法。
一、输入流和输出流的概念在Java中,输入流和输出流是用于在程序与外部环境之间传输数据的通道。
输入流用于从外部环境(如文件、网络等)读取数据到程序中,而输出流则用于将程序中的数据写入到外部环境中。
输入流和输出流是Java IO库中的核心概念,通过它们可以实现数据的读取和写入。
二、常用的输入流类1. InputStreamInputStream是所有输入流类的抽象基类,它定义了读取字节的基本方法。
常用的InputStream的子类包括FileInputStream、ByteArrayInputStream和DataInputStream等。
FileInputStream用于从文件中读取数据,ByteArrayInputStream 用于从字节数组中读取数据,DataInputStream用于从输入流中读取基本数据类型。
2. ReaderReader是所有字符输入流类的抽象基类,它定义了读取字符的基本方法。
常用的Reader的子类包括FileReader和BufferedReader等。
FileReader用于从文件中读取字符,BufferedReader用于从字符输入流中读取字符并缓冲输入。
三、常用的输出流类1. OutputStreamOutputStream是所有输出流类的抽象基类,它定义了写入字节的基本方法。
常用的OutputStream的子类包括FileOutputStream、ByteArrayOutputStream和DataOutputStream等。
FileOutputStream用于将数据写入文件,ByteArrayOutputStream用于将数据写入字节数组,DataOutputStream用于将基本数据类型写入输出流。
Java程序设计项目式教程 教案8-2 学生信息的输入输出
![Java程序设计项目式教程 教案8-2 学生信息的输入输出](https://img.taocdn.com/s3/m/31dc3d5c15791711cc7931b765ce050877327549.png)
3.了解字节流的顶级父类是抽象类InputStream和
OutputStream,它们是字节流的顶级父类o所有的字节输入流都继承自InputStream,所有的字节输出流都继承自OutputStream。为了便于理解,可以把InputStream和
1.学生接收任务,思考编程思路。并实现编程。
2.练习思考操作1和操作2的代码,思考以字符为单位的输入和输出与以为字节为单位的输入输出有什么不同。
4.熟练使用
FiIeReader>
Fi1eWriter从文件读取数据,向文件写入数据。
1.从大家熟悉的文件读取和写入案例入手,带领学生分析问题,并进行归纳总结。
O
4.通过教学增强学生的创新意识,同时掌握字节流、字符流应用场景。
40分
钟
编程实战
给学生演示示范:
字节流操作1:
FiIe1nPUtStream应用示例1,逐个字节读取D:∖test∖text1.txt文件内容O说明,首先建立D:∖test∖text1.txt文件,其内容为“欲穷千里目,更上一层楼”input=new
FiIeReader(,,D:∖∖test∖∖text1.txt");
char[]temp=new
char[100];〃设置一个字符读取缓冲区
intn;〃一次读取的字
符个数
whi1e((n=
freader,read(temp))!=-1)(
System,out.printIn(',读取,,+n+"个字符”);System.out.printIn(temp);//控制台输出读取的字符}字符流操作2:利用FiIeWriter向
JAVA输入输出流实验报告单
![JAVA输入输出流实验报告单](https://img.taocdn.com/s3/m/f237888302d276a200292e03.png)
outB.write(b);
}
outB.flush();
inB.close();
outB.close();
}catch(Exception e){e.printStackTrace();}
}
public static void main(String args[])
{
new ReadPic();
}
inB.close();
}catch(Exception e){e.printStackTrace();}
}
public static void main(String args[])
{
new UseStream1("C:\\Documents and Settings\\Administrator\\桌面\\54097227陈静");
}
3将内容写入文件
import java.io.*;
class UseStream1
{
UseStream1(String path)
{
try{
File f=new File(path,"chenjing.txt");
FileWriter outFile=new FileWriter(f);
BufferedWriter outB=new BufferedWriter(outFile);
setSize(350,280);
show();
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="打开")
{
fd=new FileDialog(this,"打开文件",FileDialog.LOAD);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广西科技大学计通学院《Java面向对象程序设计》实验实验八输入输出流学生姓名:×××学号:×××班级:×××指导老师:×××专业:计算机科学与技术提交日期:×××年××月××日实验报告内容1.实验目的掌握字符输入、输出流用法;掌握使用Scanner类解析文件;掌握Console流的使用。
2.实验内容实验教材-第12章实验1、2、3字符输入输出流;Scanner类与Console类。
要求:完善程序,给出实验结果截图;完成试验后练习。
3.程序代码及运行结果:实验1 举重成绩单//AnalysisResult、javaimport 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、javaimport java、util、*;public class Fenxi {public static double getTotalScore(String s) { String regex = "[^0123456789、]";String digitMess = s、replaceAll(regex,"*");StringTokenizer fenxi = newStringTokenizer(digitMess,"*");double totalScore=0;while(fenxi、hasMoreTokens()){double score=Double、parseDouble(fenxi、nextToken());totalScore=totalScore+score;}return totalScore;}}//score、txt姓名:张三, 抓举成绩 106kg, 挺举 189kg。
姓名:李四, 抓举成绩 108kg, 挺举 186kg。
姓名:周五, 抓举成绩 112kg, 挺举 190kg。
运行结果如图1所示图1实验2 统计英文单词//WordStatistic、javaimport java、io、*;import java、util、*;public class WordStatistic {Vector<String> allWord,noSameWord;File("english、txt");Scanner sc=null;String regex;WordStatistic (){allWord=new Vector<String>();noSameWord=new Vector<String>();regex="[\\s\\d\\p{Punct}]+";//正则表达式try{sc=new Scanner(file);sc、useDelimiter(regex);}catch(IOException exp){System、out、println(exp、toString()); }}void set(String name){);try{sc=new Scanner(file);sc、useDelimiter(regex);}catch(IOException exp){System、out、println(exp、toString()); }}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<String>getAllWord(){return allWord;}public Vector<String>getNoSameWord(){return noSameWord;}}//OutputWordMess、javaimport java、util、*;public class OutputWordMess {public static void main(String[] args) {Vector<String> allWord,noSameWord;WordStatistic statistic=newWordStatistic();statistic、set("hello、txt");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<noSameWord、size();i++){String s1=noSameWord、elementAt(i);for(int j=0;j<allWord、size();j++){String s2=allWord、elementAt(j); if(s1、equals(s2))count[i]++;}}for(int m=0;m<noSameWord、size();m++){ for(int n=m+1;n<noSameWord、size();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<noSameWord、size();m++){ double frequency=(1、0*count[m])/allWord、size();System、out、printf("%s:%-7、3f", noSameWord、elementAt(m),frequency);}}}运行结果如图2所示图2实验3 密码流//PassWord、javaimport 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){File("score1、txt");try{inOne=new (file);BufferedReader inTow=newBufferedReader(inOne);String s=null;while((s=inTow、readLine())!=null){System、out、println(s);}inOne、close();inTow、close();}catch(IOException ioe){}}}}//score、txt姓名:张三, 抓举成绩 106kg, 挺举 189kg。