文档库 最新最全的文档下载
当前位置:文档库 › Java语言的输入输出流

Java语言的输入输出流

Java语言的输入输出流
Java语言的输入输出流

Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流....本文的目的是为大家做一个简要的介绍。

流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样,如下图:

Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的:

在这其中InputStream和OutputStream在早期的Java版本中就已经存在了,它们是基于字节流的,而基于字符流的Reader和Writer是后来加入作为补充的。以上的层次图是Java类库中的一个基本的层次体系。

在这四个抽象类中,InputStream和Reader定义了完全相同的接口:

int read()

int read(char cbuf[])

int read(char cbuf[], int offset, int length)

而OutputStream和Writer也是如此:

int write(int c)

int write(char cbuf[])

int write(char cbuf[], int offset, int length)

这六个方法都是最基本的,read()和write()通过方法的重载来读写一个字节,或者一个字节数组。

更多灵活多变的功能是由它们的子类来扩充完成的。知道了Java输入输出的基本层次结构以后,本文在这里想给大家一些以后可以反复应用例子,对于所有子类的细节及其功能并不详细讨论。

import java.io.*;

public class IOStreamDemo {

public void samples() throws IOException {

//1. 这是从键盘读入一行数据,返回的是一个字符串

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

System.out.print("Enter a line:");

System.out.println(stdin.readLine());

//2. 这是从文件中逐行读入数据

BufferedReader in = new BufferedReader(new FileReader ("IOStreamDemo.java"));

String s, s2 = new String();

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

s2 += s + "\n";

in.close();

//3. 这是从一个字符串中逐个读入字节

StringReader in1 = new StringReader(s2);

int c;

while((c = in1.read()) != -1)

System.out.print((char)c);

//4. 这是将一个字符串写入文件

try {

BufferedReader in2 = new BufferedReader(new StringReader(s2));

PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("IODemo.out")));

int lineCount = 1;

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

out1.println(lineCount++ + ": " + s);

out1.close();

} catch(EOFException e) {

System.err.println("End of stream");

对于上面的例子,需要说明的有以下几点:

1. BufferedReader是Reader的一个子类,它具有缓冲的作用,避免了频繁的从物理设备中读取信息。它有以下两个构造函数:

这里的sz是指定缓冲区的大小。

它的基本方法:

void close()//关闭流

void mark(int readAheadLimit) //标记当前位置

boolean markSupported()//是否支持标记

int read()//继承自Reader的基本方法

int read(char[] cbuf, int off,int len)//继承自Reader的基本方法

String readLine()//读取一行内容并以字符串形式返回

boolean ready()//判断流是否已经做好读入的准备

2. InputStreamReader是InputStream和Reader之间的桥梁,由于System.in是字节流,需要用它来包装之后变为字符流供给BufferedReader使用。

3. PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter ("IODemo.out")));

这句话体现了Java输入输出系统的一个特点,为了达到某个目的,需要包装好几层。首先,输出目的地是文件IODemo.out,所以最内层包装的是FileWriter,建立一个输出文件流,接下来,我们希望这个流是缓冲的,所以用BufferedWriter来包装它以达到目的,最后,我们需要格式化输出结果,于是将PrintWriter包在最外层。

Java提供了这样一个功能,将标准的输入输出流转向,也就是说,我们可以将某个其他的流设为标准输入或输出流,看下面这个例子:

import java.io.*;

public class Redirecting {

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

PrintStream console = System.out;

BufferedInputStream in = new BufferedInputStream(new FileInputStream ("Redirecting.java"));

PrintStream out =new PrintStream( new BufferedOutputStream( new FileOutputStream ("test.out")));

System.setIn(in);

System.setOut(out);

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

String s;

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

System.out.println(s);

out.close();

System.setOut(console);

}

}

在这里https://www.wendangku.net/doc/1912046381.html,ng.System的静态方法

static void setIn(InputStream in)

static void setOut(PrintStream out)

提供了重新定义标准输入输出流的方法,这样做是很方便的,比如一个程序的结果有很多,有时候甚至要翻页显示,这样不便于观看结果,这是你就可以将标准输出流定义为一个文件流,程序运行完之后打开相应的文件观看结果,就直观了许多。

Java流有着另一个重要的用途,那就是利用对象流对对象进行序列化。下面将开始介绍这方面的问题。

在一个程序运行的时候,其中的变量数据是保存在内存中的,一旦程序结束这些数据将不会被保存,一种解决的办法是将数据写入文件,而Java中提供了一种机制,它可以将程序中的对象写入文件,之后再从文件中把对象读出来重新建立。这就是所谓的对象序列化Java中引入它主要是为了RMI(Remote Method Invocation)和Java Bean所用,不过在平时应用中,它也是很有用的一种技术。

所有需要实现对象序列化的对象必须首先实现Serializable接口。下面看一个例子:

import java.io.*;

import java.util.*;

public class Logon implements Serializable {

private Date date = new Date();

private String username;

private transient String password;

Logon(String name, String pwd) {

username = name;

password = pwd;

}

public String toString() {

String pwd = (password == null) ? "(n/a)" : password;

return "logon info: \n "+ "username: "+ username + "\n date: "+ date +"\n password: " + pwd;

}

public static void main(String[] args) throws IOException, ClassNotFoundException { Logon a = new Logon("Morgan", "morgan83");

System.out.println("logon a = " + a);

ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream ("Logon.out"));

o.writeObject(a);

o.close();

int seconds = 5;

long t = System.currentTimeMillis() + seconds * 1000;

while(System.currentTimeMillis() < t);

ObjectInputStream in = new ObjectInputStream(new FileInputStream("Logon.out"));

System.out.println("Recovering object at " + new Date());

a = (Logon)in.readObject();

System.out.println("logon a = " + a);

}

}

类Logon是一个记录登录信息的类,包括用户名和密码。首先它实现了接口Serializable,这就标志着它可以被序列化。之后再main方法里ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream("Logon.out"));新建一个对象输出流包装一个文件流,表示对象序列化的目的地是文件Logon.out。然后用方法writeObject 开始写入。想要还原的时候也很简单ObjectInputStream in = new ObjectInputStream(new FileInputStream("Logon.out"));新建一个对象输入流以文件流Logon.out为参数,之后调用readObject方法就可以了。

需要说明一点,对象序列化有一个神奇之处就是,它建立了一张对象网,将当前要序列化的对象中所持有的引用指向的对象都包含起来一起写入到文件,更为奇妙的是,如果你一次序列化了好几个对象,它们中相同的内容将会被共享写入。这的确是一个非常好的机制。它可以用来实现深层拷贝。

关键字transient在这里表示当前内容将不被序列化,比如例子中的密码,需要保密,所以没有被写入文件。

对Java的输入输出功能,就浅浅的介绍到这里,本文的目的只是开一个好头,希望能让大家对Java输入输出流有个基本的认识。

实验9 Java输入输出流

山西大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称 Java实验实验日期2013-12-4 成绩指导教师批改日期实验名称实验9 Java的输入输出流 ●实验目的 1. 理解I/O流的概念,掌握其分类 2. 掌握文本文件读写、二进制文件读写 ●实验内容 1. 分别使用FileWriter 和BufferedWriter 往文件中写入1万个随机数,比较用时的多少?(用时采用方法System.currentTimeMillis())求时间差; 使用:FileWriter 程序源代码 package a; import java.io.*; public class Filewriter { public Filewriter(String string){ } public static void main(String[] args)throws IOException { long time =System.currentTimeMillis(); Filewriter filewriter=new Filewriter("text"); int num; for(int i=0;i<=10000;i++){ num=(int)Math.random()*10000; filewriter.write(num+" "); } filewriter.close(); time=System.currentTimeMillis()-time; System.out.println("使用Filewriter所用时间:"+time+"um"); } private void write(String string){ } private void close(){ } }

JAVA输入输出流--字节流篇(什么时候用哪个)

1流的概念 stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样,如下图: 在Java的IO中,所有的stream(包括Inputstream和Out stream)都包括两种类型: (1)字节流 表示以字节为单位从stream中读取或往stream中写入信息,即io包中的inputstream类和outputstream类的派生类。通常用来读取二进制数据,如图象和声音。 (2)字符流 以Unicode字符为导向的stream,表示以Unicode字符为单位从stream中读取或往stream中写入信息。 区别: Reader和Writer要解决的,最主要的问题就是国际化。原先的I/O类库只支持8位的字节流,因此不可能很好地处理16位的Unicode字符流。Unicode是国际化的字符集(更何况Java内置的char就是16位的Unicode 字符),这样加了Reader和Writer之后,所有的I/O就都支持Unicode了。此外新类库的性能也比旧的好。 但是,Read和Write并不是取代InputStream和OutputStream,有时,你还必须同时使用"基于byte的类"和"基于字符的类"。为此,它还提供了两个"适配器(adapter)"类。InputStreamReader负责将InputStream转化成Reader,而OutputStreamWriter则将OutputStream转化成Writer。实际上是通过byte[]和String来关联。在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的。 以字符为导向的stream基本上对有与之相对应的以字节为导向的stream。两个对应类实现的功能相同,只是在操作时的导向不同。

实验04 Java输入输出流报告

实验四 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/1912046381.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多线程和输入输出流

班级:13科技2班学号:201324131225 姓名:许耿宁 Java多线程和输入输出流 一、实验目的: 1.熟悉利用Thread类建立多线程方法。 2.熟悉利用Thread接口建立多线程方法。 3.熟悉Java的文件读写机制,练习输入输出流的使用。 二、实验内容: 1.阅读下列程序,分析并上机检验其功能。 public class DelayRunnable implements Runnable{ private static int count=0; private int no; private int delay; public DelayRunnable(){ count++; no=count; } public void run(){ try{ for (int i=0;i<10;i++){ delay=(int)(Math.random()*5000); Thread.sleep(delay); System.out.println("Thread "+no+" with a delay "+delay); } }catch(InterruptedException e){} } } class MyRunnable{ public static void main(String args[]){ DelayRunnable r1 = new DelayRunnable();

DelayRunnable r2 = new DelayRunnable(); Thread thread1=new Thread(r1); Thread thread2=new Thread(r2); thread1.start(); thread2.start(); try{ Thread.sleep(1000); }catch(InterruptedException e){ System.out.println("Thread wrong"); } } } 2.将上列程序利用Runnable接口改写,并上机检验。 3.创建简单的程序ThreeThread.java,该程序将创建三个线程,每个线程应当显示它所运行的时间(可以考虑使用Date类或Calendar类)。 4.键盘输入10个整数,从小到大进行排序。 5.接收键盘输入的字符串,用FileInputStream类将字符串写入文件,用 FileOutputStream类读出文件内容显示在屏幕上。 6.将一个文本文件的内容按行读出,每读出一行就顺序加上行号,并写入到另一个文件中。 三、实验要求: 1.通过实验掌握Thread 、Runnable使用方法; 2.程序必须能够实现多线程; 3.程序必须能够完成题目要求; 4.通过实验掌握文件输入输出流的使用方法; 5.程序必须能够从键盘接收字符串并保存在文件中; 6.程序必须能够读出文件内容显示在屏幕上; 7.写出实验报告。 四、实验代码及截图: 第一题: 在编译器上运行程序得到截图所示结果:

第九章答案文件

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()输入一个字符。 例如

实验9 Java输入输出流

▇▆大学计算机与信息技术学院 实验报告 姓名□□□学号▅▅▅▅专业班级▅▅ 课程名称 Java实验实验日期???? 成绩指导教师▇▇██批改日期实验名称实验9 Java的输入输出流 ●实验目的 1. 理解I/O流的概念,掌握其分类 2. 掌握文本文件读写、二进制文件读写 ●实验内容 1. 分别使用FileWriter 和BufferedWriter 往文件中写入1万个随机数,比较用时的多少?(用时采用方法System.currentTimeMillis())求时间差; 使用:FileWriter 程序源代码 import java.io.*; public class TestFileWriter { public static void main(String []args) throws IOException{ File f = new File("C:/java/tem.txt"); if (f.exists()){ System.out.printf("文件\"C:/java/tem.txt\"已存在"); System.exit(0); } FileWriter fileWriter = new FileWriter(f); long time = System.currentTimeMillis(); for(int i=0;i<10000;i++) fileWriter.write((int)(Math.random()*101)); fileWriter.close(); time = System.currentTimeMillis() - time; System.out.printf("使用FileWriter耗时:"+time+"毫秒"); } } 程序运行结果贴图 使用:BufferedWriter 程序源代码 import java.io.*; public class TestBufferedWriter { public static void main(String []args) throws IOException{ File f = new File("C:/java/tem2.txt");

java输入输出流和文件操作

Java IO流和文件操作Java流操作有关的类或接口: Java流类图结构:

1、File类 File类是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹。 File类保存文件或目录的各种元数据信息,包括文件名、文件长度、最后修改时间、是否可读、获取当前文件的路径名,判断指定文件是否存在、获得当前目录中的文件列表,创建、删除文件和目录等方法。 构造方法摘要 File(File parent, String child) File(String pathname) File(String parent, String child) 构造函数 创建方法 1.boolean createNewFile() 不存在返回true 存在返回false 2.boolean mkdir() 创建目录 3.boolean mkdirs() 创建多级目录 删除方法 1.boolean delete() 2.boolean deleteOnExit() 文件使用完成后删除 例子1:列出指定文件夹的文件或文件夹 public class FileDemo1 { public static void main(String[] args){ File[] files =File.listRoots(); for(File file:files){

System.out.println(file); if(file.length()>0){ String[] filenames =file.list(); for(String filename:filenames){ System.out.println(filename); } } } } } 例子2:文件过滤 import java.io.File; public class FileTest2 { public static void main(String[] args) { File file = new File("file"); String[] names = file.list(); for(String name : names) { if(name.endsWith(".java")) { System.out.println(name); }

第9章 输入输出流

第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类可以用于改变当前工作路径。

Java输入输出流经典编程题

软件091班java程序机试题 编程题: 0. 求两点之间的距离。 要求: 1)设计点类,属性为点的坐标;利用点类设计距离类。 2)两点的坐标通过键盘输入,键盘输入要运用流,输入数据时要有合理的提示信息, 输出信息表达明确。 1.实现如下界面功能的图形界面应用程序(字体设置)。 2.编写程序,通过键盘输入多行信息,直接输入一个文本文件中。 要求:键盘输入的信息要使用流。 3.求5个以上学生的Java平均成绩。 要求: 1)要利用对象数组生成对象 2)信息通过键盘输入(利用流)。 3)Java成绩的范围在0-分100分,若输错,则需要重新输入。 4.设计一个包含两个命令按钮(显示文字和显示图片)的界面。 要求: 1)当单击“显示文字”命令按钮后,命令按钮变为“文字消失”,同时显示一行“单 击了命令按钮!”的文字。单击“文字消失”命令按钮后,命令按钮又变为“显 示文字”命令按钮,同时文字“单击了命令按钮!”消失。如此可以反复。 2)当单击“显示图片”命令按钮后,命令按钮变为“图片消失”,同时显示任意一 幅图片。单击“图片消失”命令按钮后,命令按钮又变为“显示图片”命令按钮, 同时图片消失。如此可以反复。 5.求5个以上人的平均年龄。 要求: 1)要利用对象数组生成对象 2)信息通过键盘输入(利用流)。 3)人年龄的范围在0岁-120岁,若输错,则需要重新输入。 6.打开Login1.Java源程序,题目要求见源程序的注释部分。 7.分别利用接口和抽象类,求给定三个以上三角形和给定三个以上矩形的平均周长。 提示:应该产生两个源程序。 要求: 1)要利用对象数组生成对象。 2)信息通过键盘输入(利用流)。 3)输入的三角形的三条边要能构成三角形,否则需要重新输入。

java输入输出流总结

一、数据流的基本概念 流一般分为输入流(Input Stream)和输出流(Output Stream)两类,但这种划分并不是绝对的。比如一个文件,当向其中写数据时,它就是一个输出流;当从其中读取数据时,它就是一个输入流。当然,键盘只是一个数人流,而屏幕则只是一个输出流。 java的标准数据流:标准输入输出指在字符方式下(如DOS),程序与系统进行交互的方式,分为三种: 标准输入studin,对象是键盘。 标准输出stdout,对象是屏幕。 标准错误输出stderr,对象也是屏幕。 二、java.io包中的数据流和文件类 字节流:从InputStream和OutputStream派生出来的一系列类。这类流以字节(byte)为基本处理单位。 InputStream、OutputStream FileInputStream、FileOutputStream PipedInputStream、PipedOutputStream ByteArrayInputStream、ByteArrayOutputStream FilterInputStream、FilterOutputStream DataInputStream、DataOutputStream BufferedInputStream、BufferedOutputStream 字符流:从Reader和Writer派生出的一系列类,这类流以16位的Unicode码表示的字符为基本处理单位。 Reader、Writer InputStreamReader、OutputStreamWriter FileReader、FileWriter CharArrayReader、CharArrayWriter PipedReader、PipedWriter FilterReader、FilterWriter BufferedReader、BufferedWriter StringReader、StringWriter 三、字节流方法 InputStream 和OutputStream read():从流中读入数据 skip():跳过流中若干字节数 available():返回流中可用字节数 mark():在流中标记一个位置 reset():返回标记过得位置 markSupport():是否支持标记和复位操作 close():关闭流 int read() :从输入流中读一个字节,形成一个0~255之间的整数返回(是一个抽象方法)。 int read(byte b[]) :读多个字节到数组中。 int read(byte b[], int off, int len):从输入流中读取长度为len的数据,写入数组b中从索引of f开始的位置,并返回读取得字节数。 write(int b) :将一个整数输出到流中(只输出低位字节,抽象) write(byte b[]) :将字节数组中的数据输出到流中 write(byte b[], int off, int len) :将数组b中从off指定的位置开始,长度为len的数据输出到流

第9章 输入输出流和文件操作

第9章输入输出流和文件操作 一、选择题 1.流的传递方式是() A. 并行的 B. 串行的 C. 并行和串行 D. 以上都不对 2.下列不是java的输入输出流的是() A. 文本流 B. 字节流 C. 字符流 D. 文件流 3.凡是从中央处理器流向外部设备的数据流称为() A. 文件流 B. 字符流 C. 输入流 D. 输出流 4.获取一个不包含路径的文件名的方法为() A. String getName( ) B. String getPath( ) C. String getAbslutePath( ) D. String getParent( ) 5.下列属于文件输入输出类的是() A. FileInputStream和FileOutputStream B. BufferInputStream和BufferOutputStream C. PipedInputStream和PipedOutputStream D. 以上都是 6.下列不属于FileInputStream输入流的read()成员函数的是() A. int read(); B. int read(byte b[]); C. int read(byte b[],int offset,int len); D. int read(int line); 7.当处理的数据量很多,或向文件输出很多次小数据,一般使用()流 A. DataOutput B. FileOutput C. BufferedOutput D.PipedOutput 8.当把一个程序、线程或代码段的输出连接到另一个程序、线程或代码短的输入时,应使用()流 A. DataOutput B. FileOutput C. BufferedOutput D. PipedOutput 9.当要将一文本文件当作一个数据库访问,读完一个纪录后,跳到另一个纪录,它们在文

《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 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){ double

模拟电子技术第九章课后习题答案

第九章 功率放大电路 自 测 题 一、选择合适的答案,填入空内。只需填入A 、B 或C 。 (1)功率放大电路的最大输出功率是在输入电压为正弦波时,输出基本不失真情况下,负载上可能获得的最大 。 A .交流功率 B .直流功率 C .平均功率 (2)功率放大电路的转换效率是指 。 A .输出功率与晶体管所消耗的功率之比 B .最大输出功率与电源提供的平均功率之比 C .晶体管所消耗的功率与电源提供的平均功率之比 (3)在OCL 乙类功放电路中,若最大输出功率为1W ,则电路中功放管的集电极最大功耗约为 。 A .1W B .0.5W C .0.2W (4)在选择功放电路中的晶体管时,应当特别注意的参数有 。 A .β B .I C M C .I C B O D .B U C E O E .P C M F .f T (5)若图T9.1所示电路中晶体管饱和管压降的数值为│U C E S │,则最大输出功率P O M = 。 A .L 2CES CC 2) (R U V - B .L 2CES CC )21(R U V - C .L 2CES CC 2)2 1(R U V - 图T9.1

解:(1)A (2)B (3)C (4)B D E (5)C 二、电路如图T9.2所示,已知T 1和T 2的饱和管压降│U C E S │=2V ,直流功耗可忽略不计。 图T9.2 回答下列问题: (1)R 3、R 4和T 3的作用是什么? (2)负载上可能获得的最大输出功率P o m 和电路的转换效率η各为多少? (3)设最大输入电压的有效值为1V 。为了使电路的最大不失真输出电压的峰值达到16V ,电阻R 6至少应取多少千欧? 解:(1)消除交越失真。 (2)最大输出功率和效率分别为 %8.694πW 162)(CC CES CC L 2 CES CC om ≈-?= =-= V U V R U V P η (3)电压放大倍数为 3.1113.1121 6i omax ≈+=≈=R R A U U A u u R 1=1k Ω,故R 5至少应取10.3 k Ω。

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){

第9章输入输出流上机

(一)使用文件输入输出流的应用程序 1.程序功能:将保存在本地机当前文件夹中的KY10_ 2.HTML 文本文件的内容在屏幕上显 示出来,然后将其另存为KY10_2.txt 文件。 2.编写KY10_2.java 程序文件,源代码如下 import java.io.*; public class KY5_4 { public static void main(String[] args) throws IOException { FileReader in=new FileReader("KY5_1.HTML");//建立文件输入流 BufferedReader bin=new BufferedReader(in);//建立缓冲输入流 FileWriter out=new FileWriter(" KY5_1.txt",true);//建立文件输出流 String str; while ((str=bin.readLine())!=null) { //将缓冲区内容通过循环方式逐行赋值给字符串str System.out.println(str);//在屏幕上显示字符串str out.write(str+"\n");//将字符串str 通过输出流写入KY5_1.txt 中 } in.close(); out.close(); } } 3.编译、运行程序 (二)使用随机文件类的应用程序 使用文件输入类FileReader 只能将文件内容全部读入。如果要选择读入文件的内容,可使用随机文件类RandomAccessFile。 1.程序功能:建立数据流,通过指针有选择的读入文件内容。 编写KY10_3.java 程序文件,源代码如下。 import java.io.*; class KY10_3 { public static void main(String args[]) { String str[]={"First line\n","Second line\n","Last line\n"}; try { RandomAccessFile rf=new RandomAccessFile("KY5_5.txt", "rw"); System.out.println("\n 文件指针位置为:"+rf.getFilePointer()); System.out.println("文件的长度为:"+rf.length()); rf.seek(rf.length()); System.out.println("文件指针现在的位置为:"+rf.getFilePointer()); for (int i=0; i<3; i++) rf.writeChars(str[i]); // 字符串转为字节串添加到文件末尾87 rf.seek(0);

Java的输入与输出流(实验报告)

成都大学实验报告 实验项目名称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"));

java输入输出流试验

输入输出流 一、实验目的: 熟悉Java的文件读写机制,练习输入输出流的使用。 二、实验内容: 1、键盘输入10个整数,从小到大进行排序。 2、接收键盘输入的字符串,用FileInputStream类将字符串写入文件,用 FileOutputStream类读出文件内容显示在屏幕上。 3、将一个文本文件的内容按行读出,每读出一行就顺序加上行号,并写入 到另一个文件中。 三、实验要求: 1. 通过实验掌握文件输入输出流的使用方法; 2. 程序必须能够从键盘接收字符串并保存在文件中; 3. 程序必须能够读出文件内容显示在屏幕上; 4. 写出实验报告。 四、实验步骤: 1、键盘输入10个整数,从小到大进行排序。 package javaTest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Gui_21 { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String str; int array[]=new int[10]; for(int i=0;i<10;i++) { System.out.println("请输入一个整数:"); str=br.readLine(); array[i]=Integer.parseInt(str);

servlet中的输入输出流

分类:Java JSP和Servlet中的输入输出流 2008-05-27 20:00 一、servlet response实现了HttpServletResponse接口,request实现了HttpServletRequest接口。 1、输出流有两个: 字节形式输出:response.getOutputStream() 字符形式输出:response.getWriter() 2、输入流有两个: 字节形式输入:request.getInputStream() 字符形式输入:request.getReader() 二、JSP JSP中的response对象已经实现了HttpServletResponse接口,request对象已经实现了HttpServletRequest接口。 1、输出流 jsp中可以使用response.getWriter()方法建立字符输出流来输出字符数据到网页上。 因为jsp转译成servlet时,当有输出就会使用getWriter(). 它是javax.servlet.jsp.JspWriter类型(extends java.io.Writer). 而getOutputStream(). 它是javax.servlet.ServletOutputStream类型(extends java.io.OutputStream). 而对客户端的输出只能使用一种类别输出. 当它在jsp里使用了getOutputStream(). 就会产生了两种类别输出,所以就会形成冲突.program根本不知道你要使用那一个作为输出. 一般在下载档案时都要使用getOutputStream().对客户端串流输出. 使用jsp作为下载档案时, 在jsp档案里,不能有任何的输出. 包括空格或out.println("xxx"); 因为会使用了jspWriter(). 2、输入流 jsp中好像没有自动实现输入流的对象,所以可以使用request.getInputStream(),request.getReader()方法建立输入流。 3、读写服务器上的文件 file.Reader()和file.Writer()方法可以用来读写服务器上任何位置的文件。

Java的输入与输出流(实验报告)

大学实验报告 实验项目名称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++){

java实验七 输入输出流

实验七输入输出流 一.实验目的和要求 目的: 1、掌握使用输入输出流进行文件的读写操作。 要求: 1、实验报告给出内容1,2的填充代码以及内容3的全部源代码。 二.实验内容 1、按程序模板要求,将注释处替换为Java程序代码。实现文件加密。 2、按程序模板要求,将注释处替换为Java程序代码。给文件的内容添加行号. 3、串行化对象Student到本地文件,并在下一次运行程序时用来初始化。(选做)三.实验环境 硬件: (1)学生用微机 (2)多媒体实验教室 软件: (1)Windows XP中文操作系统 (2)JDK控制台 四.算法描述及实验步骤 实验步骤: 1、按程序模板要求,将注释处替换为Java程序代码 该程序将已存在的文本文件加密后存入另一个文本文件中。请按模板要求,将【代码1】~【代码6】替换为Java程序代码 SecretExample.java import java.io.*; public class SecretExample { public static void main(String args[ ]) { File fileOne=new File("hello.txt"), fileTwo=new File("hello.secret"); char b[]=new char[100]; try{ FileReader in=【代码1】 // 创建指向fileOne的字符输入流 FileWriter out=【代码2】 // 创建指向fileTwo字符输出流 int n=-1; while((n=in.read(b))!=-1) {

for(int i=0;i

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