文档库 最新最全的文档下载
当前位置:文档库 › Java 输入输出(含部分答案)

Java 输入输出(含部分答案)

Java 输入输出(含部分答案)
Java 输入输出(含部分答案)

Java输入输出

知识点:

1、文件和流的操作,理解字节流和字符流的概念

2、异常处理的概念,自定义异常类

一、选择题

1、如果一个程序段中有多个catch,则程序会按如下哪种情况执行? ( )

A)找到合适的例外类型后继续执行后面的catch

B)找到每个符合条件的catch都执行一次

C)找到合适的例外类型后就不再执行后面的catch

D)对每个catch都执行一次

2、程序员将可能发生异常的代码放在()块中,后面紧跟着一个或多个()块。

A) catch、try B) try、catch

C) try、exception D) exception、try

3、在Java语言中,在程序运行时会自动检查数组的下标是否越界,如果越界,会抛掷下面的异常( )

A) SQLException B) IOException

C) ArrayIndexOutOfBoundsExcetion D) SecurityManager

4、在Java中,关于捕获异常的语法try-catch-finally的下列描述哪些正确?( )

A) try-catch必须配对使用B) try可以单独使用

C) try-finally必须配对使用D) 在try-catch后如果定义了finally,则finally 肯定会执行

5、给定下面的代码片断:

public class Animal{

public void Cat(){

try{

Method();

}

catch(ArrayIndexOutBoundsException e)

{System.out.println("Exception1");}

catch(Exception e)

{System.out.println("Exception2");}

finally

{System.out.println("Hello World!!");}

}

public void Method()

{

//...

}

public static void main(String[] args)

{

Animal.Ani=new Animal ();

Ani. Cat ();

}

}

如果函数method正常运行并返回,会显示下面的哪些信息?( )

A) Hello World B) Exception1

C) Exception2 D) Hello World!!

6、如果下列的方法能够正常运行,在控制台上将显示什么?( )

public void example(){

try{

unsafe();

System.out.println("Test1");

}

catch(SafeException e)

{

System.out.println("Test 2");

}

finally{System.out.println("Test 3");}

System.out.println("Test 4");

}

A) Test 1 B) Test 2

C) Test 3 D) Test 4

7、以下哪一项不是File类的功能: ( )

A) 创建文件B) 创建目录

C) 删除文件D) 拷贝文件

2、下面哪个不是InputStream类中的方法: ( )

A) int read(byte[]) B) void flush()

C) void close() D) int available()

8、构造BufferedInputStream的合适参数是哪个?

A) BufferedInputStream B) BufferedOutputStream

C) FileInputStream D) FileOuterStream

E) File

9、要从文件" file.dat"文件中读出第10个字节到变量C中,下列哪个方法适合? ( )

A) FileInputStream in=new FileInputStream("file.dat");in.skip(9); int

c=in.read();

B) FileInputStream in=new FileInputStream("file.dat"); in.skip(10); int

c=in.read();

C) FileInputStream in=new FileInputStream("file.dat"); int c=in.read();

D) RandomAccessFile in=new RandomAccessFile("file.dat"); in.skip(9);

int c=in.readByte();

10、以下程序发生什么异常?

class A {

int x;

public static void main {

A x;

System.out.println(x.x);

}

}

A. IOException

B. InterruptException

C. NullPointerException

D. DataFormatException

11、设有如下方法:

public void test() {

try {

oneMethod();

System.out.println("condition 1");

} catch (ArrayIndexOutOfBoundsException e) {

System.out.println("condition 2");

} catch(Exception e) {

System.out.println("condition 3");

} finally {

System.out.println("finally");

}

}

如果oneMethod正常运行,则输出结果中有哪些?

A. condition 1

B. condition 2

C. condition 3

D. finally

12、设有如下代码:

public void fun () {

int i;

try

{

i=System.in.read ();

System.out.println("Location 1");

} catch (IOException e) {

System.out.println("Location 2");

} finally {

System.out.println("Location 3");

}

System.out.println("Location 4");

}

如果有一个IOException发生, 则输出有哪些?

A. Location 1

B. Location 2

C. Location 3

D. Location 4

13、设有如下代码:

1 String s = null;

2 if ( s != null & s.length() > 0)

3 System.out.println("s != null & s.length() > 0");

4 if ( s != null && s.length() > 0)

5 System.out.println("s != null & s.length() > 0");

6 if ( s != null || s.length() > 0)

7 System.out.println("s != null & s.length() > 0");

8 if ( s != null | s.length() > 0)

9 System.out.println("s != null | s.length() > 0"); 以下行中哪些会产生空指针异常。

A. 2,4

B. 6,8

C. 2,4,6,8

D. 2,6,8

14、类Test1、Test2定义如下:

1.public class Test1 {

2. public float aMethod(float a,float b) throws IOException { 3. }

4. }

5. public class Test2 extends Test1{

6.

7. }

将以下哪种方法插入行6是不合法的。

A、float aMethod(float a,float b){ }

B、public int aMethod(int a,int b)throws Exception{ }

C、public float aMethod(float p,float q){ }

D、public int aMethod(int a,int b)throws IOException{ }

15、设有如下代码:

try {

tryThis();

return;

} catch (IOException x1) {

System.out.println("exception 1");

return;

} catch (Exception x2) {

System.out.println("exception 2");

return;

} finally {

System.out.println("finally");

}

如果tryThis() 抛出 NumberFormatException,则输出结果是?

A. 无输出

B. "exception 1", 后跟 "finally"

C. "exception 2", 后跟 "finally"

D. "exception 1"

E. "exception 2"

16、以下哪个是RandomAccessFile文件的构造方法:

A.RandomAccessFile("data", "r");

B.RandomAccessFile("r", "data");

C.RandomAccessFile("data", "read");

D.RandomAccessFile("read", "data");

17、设有如下代码:

import java.io.*;

public class Th{

public static void main(String argv[]){

Th t = new Th();

t.amethod();

}

public void amethod(){

try{

ioCall();

}catch(IOException ioe){}

}

}

以下哪个最有可能是ioCall方法的方法体?

A. public void ioCall () throws IOException{

DataInputStream din = new DataInputStream(System.in);

din.readChar();

}

B. public void ioCall () throw IOException{

DataInputStream din = new DataInputStream(System.in);

din.readChar();

}

C. public void ioCall (){

DataInputStream din = new DataInputStream(System.in);

din.readChar();

}

D. public void ioCall throws IOException(){

DataInputStream din = new DataInputStream(System.in);

din.readChar();

}

18、当前目录不存在名为Hello.txt的文件,执行下面代码的输出结果为?

import java.io.*;

public class Mine{

public static void main(String argv[]){

Mine m=new Mine( );

System.out.println(m.amethod());

}

public int amethod(){

try{

FileInputStream file=new FileInputStream("Hello.txt");

}

catch(FileNotFoundException e){

System.out.print("No such file found");

return -1;

}

catch(IOException e){

System.out.print("Doing finally");

}

return 0;

}

}

A. No such file found

B. No such file found-1

C. No such file foundDoing finally-1

D. 0

19、使用哪个类可创建目录?

A. File B. DataOutput C. Directory

D. FileDescriptor E. FileOutputStream

20、假设raf是一个随机访问文件,以下语句的编译和运行结果为?raf.seek( raf.length() );

A.代码不能编译.

B.会出现IOException

C.文件指针将定位到文件的最后一个字符之前

D.文件指针将定位到文件的最后一个字符

21、以下哪些是FileOutputStream 构造方法的合法形式?

A. FileOutputStream( FileDescriptor fd )

B. FileOutputStream( String n, boolean a )

C. FileOutputStream( boolean a )

D. FileOutputStream()

E. FileOutputStream( File f )

22、以下哪个能编译通过?

A.File f = new File("/","autoexec.bat");

B. DataInputStream d = new DataInputStream(System.in);

C. OutputStreamWriter o = new OutputStreamWriter(System.out);

D. RandomAccessFile r = new RandomAccessFile("OutFile");

23、以下程序的调试结果为:

import java.io.*;

class Base{

public void amethod()throws FileNotFoundException{}

}

public class ExcepDemo extends Base{

public static void main(String argv[]){

ExcepDemo e = new ExcepDemo();

}

public void amethod(){}

protected ExcepDemo(){

try{

DataInputStream din = new DataInputStream(System.in);

System.out.println("Pausing");

din.readByte();

System.out.println("Continuing");

this.amethod();

}catch(IOException ioe) { }

}

}

A. 由于构造方法为protected导致编译出错

B. 由于amethod方法未声明异常导致编译出错

C. 由于amethod方法未声明异常导致运行错误

D. 输出显示 "Pausing",击键后显示"Continuing"

24、下列描述中不属于 Java异常处理机制优点的一项是( D )。

A、把错误处理代码从正常代码中分离出来

B、按错误类型和差别分组

C、对无法预测的错误的捕获和处理

D、能够处理任何类型的错误

25、下列方法中哪一个不能用于获取异常信息( C )?

A、toString ( )

B、getMessage( )

C、drawline( )

D、printStackTrace()

26、下列描述中,哪一项不属于finally语句应陔执行的功能( C )?

A、释放资源

B、关闭文件

C、分配资源

D、关闭数据库

27、下列关于RuntimeException的说法中正确的一个项( D )。

A、此异常默认可以被除了main( )方法之外的任何方法抛出

B、它没有被强迫处理,因此也不会被main( )处理

C、这种异常属于检测异常

D、从jdk的docs可以了解都有哪些异常属于此类

28、下列关于异常处理原则的说法中错误的一项是( )。

A、修正问题,并再次调用引发异常的方法

B、暂时解决问题,不再尝试执行该方法,转而继续程序的执行

C、用一个可替代的结果替换方法本来应该得出的值

D、进行一些工作,然后把同一异常重掷到较低层

29、下列关于异常使用原则的说法中错误的一项是( )。

A、处理本异常,然后再把另一个不同异常重掷到较低层

B、中止程序,不让程序继续向下运行

C、使问题简化,不用花很多时间在跟踪错误上

D、让程序更安全

30、下列描述中,正确的一项是( )。

A、当异常被抛出时,可能产生由于没有与之匹配的catch子句而过早地返回的情况

B、一个try代码段必须和一个catch代码段相对应

C、catch(Exception e)不能捕获异常抛出的任何类型

D、非GUI程序产生异常时,若没有合适的异常处理与之匹配,则程序将恢复正常的运行

31、下列选项中,哪一个属于输出流?()

A、从打印机流向控制器的数据流

B、从键盘流向内存的数据流

C、从内存流向控制器的数据流

D、从内存流向网络的数据流

32、下列哪一个类属于java.util.jar包?()

A、GZIPlnputStream

B、ZipInputStream

C、JarlnputStream

D、InflaterInputstream

33、Fileoutputstream类的父类是( )。

A、File

B、FileOutput

C、OutputStream

D、InputStream

34、下列说法中,错误的一项是( )。

A、Java系统的标准输入对象是System.in

B、打开一个文件时不可能产生IOException

C、使用File对象可以判断一个文件是否存在

D、使用File对象可以判断一个目录是否存在

35、下列哪一个是Pattern类的方法?()

A、matches()

B、find()

C、start()

D、end()

36、下列哪一个类实现了线程组?()

A、https://www.wendangku.net/doc/557230141.html,ng.Objict

B、java.1ang.ThreadGroup

C、Java.1ang.Thread

D、java.1ang.Runnable

37、要实现完全定制串行化,串行化类必须实现的接口是( )

A、Serializable

B、Runnable

C、Thread

D、Extenalizable

38、File类中的()方法可以用来判断文件或目录是否存在。(选择一项)

A.exist();

B.exists();

C.fileExist();

D.fileExists();

【解析】B

39、File类中的()方法可以用来获取文件的大小。(选择一项)

a)length()

b)size()

c)getLength()

d)getSize()

【解析】A

40、文本文件的读写过程中,需要处理下列()异常。(选择一项)

a)ClassNotFoundException

b)IOException

c)SQLException

d)RemoteException

【解析】B

41、字符流是以()传输数据的。(选择一项)

a)1个字节

b)8位字符

c)16位Unicode字符

d)1比特

【解析】C

42、()方法可以用来清空流。(选择一项)

a)void release()

b)void close()

c)void Remove()

d)void flush

【解析】D

43、对于异常处理语句try…catch…finally,下面哪个说法是正确的?( C )

A) 如果有多个catch语句,对所有的catch都执行一次

B) 如果有多个catch语句,对每个符合条件的catch都执行一次

C) 找到合适的异常类型后就不再执行后面的catch

D) 任何情况下,finally部分都会被执行一次

44、对于异常处理语句try…catch,下面那句话不正确? ( A )

A、一个符合条件的catch的处理语句中没有break语句,则执行后会继续执行后续catch

B、不管有没有捕获异常,finally部分都会被执行

C、找到合适的异常类型后就不再执行后面的catch

D、应该先处理子异常类,再处理父异常类。

45、用文件字节输出流对文件进行写操作时,需要先创建文件输出流对象,文件输出数据流的构造方法是 public FileOutputStream(String name,Boolean append) throws FileNotFoundException,当参数append的值为true时,表示

( B )

A、创建一个新文件

B、在原文件的尾部添加数据

C、覆盖原文件的内容

D、在原文件的指定位置添加数据

46、下列哪种操作不会抛出异常?( B )

A) 浮点数除0 B) 浮点数乘0

C) 打开不存在的文件 D) 用负数索引访问数组

47、下面的程序段的功能是( A )。

File file1=new File("e:\\xxx\\yyy");

file1.mkdir();

A)在当前目录下生成子目录:\xxx\yyy B)生成目录: e:\xxx\yyy

C)在当前目录下生成文件xxx.yyy D)以上说法都不对

48、对于异常处理语句try…catch…finally,下面哪个说法是正确的? ( C )

A) 如果有多个catch语句,对所有的catch都执行一次

B) 如果有多个catch语句,对每个符合条件的catch都执行一次

C) 找到合适的异常类型后就不再执行后面的catch

D) 任何情况下,finally部分都会被执行一次

49、如果一个程序段中有多个catch,则程序会按如下哪种情况执行? ( )

A)找到合适的异常类型后继续执行后面的catch

B)找到每个符合条件的catch都执行一次

C)找到合适的异常类型后就不再执行后面的catch

D)对每个catch都执行一次

50、下列哪一段代码能够删除文件file.txt

A、File f=new File(“file.txt”);

f.delete();

B、RandomAccessFile f=new RandomAccessFile(“file.txt”,”rw”);

f.delete();

C、FileOutputStream f=new FileOutputStream(“file.txt”);

f.remove();

D、File f=new File(“file.txt”);

File.delete(f);

51、下面哪一个流属于过滤流

A、InputStream

B、FileInputStream

C、DataInputStream

D、FileReader

52、设有以下程序段

class TestException

{

public static void main(String [] args)

{

try{

return;

}finally{

System.out.println("finally");

}

}

}

程序编译并执行,其结果将是

A、程序执行,但没有任何输出

B、程序输出finally

C、程序编译时出错,提示缺少catch

D、程序编译时出错,提示finally语句无法访问到。

53、下面哪一种流可以用来输入字符

A、InputStream

B、OutputStream

C、InputStreamReader

D、BufferedInputStream

二、填空题

1、数据越界抛出的异常类是,整数除零抛出的异常类是,算术溢出抛出的异常类是。

2、写出4个常见的异常例子:、、

和。重新抛出一个异常用语句。

3、创建文件(c:\test.txt)对象的语句是,DataInputStream 对象提供方法可以按行读取文件内容。

4、异常处理在内存中采用_ 堆栈 ____机制。

5、Java语言机制的优点主要有:把错误处理代码从___ 常规 ___中分离出来;按错误类

型和差别分组;对无法预测的错误的捕获和处理;克服了传统方法的错误信息有限的问题;把错误传播给调用堆栈。

6、用户定义异常是通过扩展__ Exception __类及_ throwable 类来刨建的。

7、在Java编程语言中,用_ try __, catch ___,__ finally ___语句来处理异常。

8、由于系统不能识别和创建用户_ 自定义的异常 ___,所以需要在程序的合适位置

创建__自定义异常对象 ___,并使用throw语句将该新异常对象抛出。

9、Java语言的异常处理机制中__ catch ___子句或_ finally ____子句可省略,但二者不能同时省略。

10、若抛出的异常类的对象不在catch之列,或者catch子句中包含__ 异常对象 ___

语句,则执行finally子句中的代码之后返_ 异常处理 ___。

11、使用管道流的时候,需要明确管道的__ ___是管道的接收方,而管道的__ ___

是管道的发送方。

12、输入输出在计箅机中有两个主要作用:_ 采集数据 ___和_ 提供数据处理结果。

13、ByteArraylnputStream以__ 字节数组 _作为输入流。

14、所有的输出过滤流都是抽象类_ FilterOutputStream ____的子类。

15、字符输入流BufferedReader使用了__ PrintStream ____技术。

16、CharArrayWrlter类写入的是一个内部的__ 字符数组 ___。

17、stringWriter类写入的是一个内部的___ StringBuffer __。

18、流类处理的是文件的_ 内容 ___,而Flie类处理的是文件在磁盘上的_ 存储___。

19、从DataInlputStream对象dis的当前位置处读取一个字符串保存在变量str中的语句是 _

20、用FileInputStream类创建文件(c:\test.txt)对象的语句是,DataInputStream对象提供方法可以按行读取文件内容。21、写出三个常见Exception的子类:、

和。

22、阅读下面的程序,写出带划线语句或注释,并写出该程序的作用:

import java.io.*;

public class Test {

public static void main(String args[]) {

scanFiles("c:/");

}

public static void scanFiles(String path) {

if (path == null)

return;

File f = new File(path); // if (!f.exists())

return;

if (f.isFile()) // System.out.println(f.getAbsolutePath());

else {

File dir[] = f.listFiles();

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

scanFiles(dir[i].getAbsolutePath());//

}

}

}

/*

创建path的File对象,对象引用名为f

判断f的对象是否为文件

递归调用scanFiles方法

该程序的作用是扫描C盘下所有的文件,并将文件的路径打印

*/

23、阅读下面的程序Test.java,先填写空格的内容,然后写出运行结果:

1)import java.io.*;

2)public class Test{

3) public static void main(String argv[]){

4) ; //创建Test对象,对象名为t

5) System.out.println(t.fliton());

6) }

7) public int fliton(){

8) try{

//第9行的含义是:

9) FileInputStream din = new FileInputStream("test.txt");

10) din.read();

11) }catch(IOException ioe){ //第11行的含义是:

12) System.out.println("one");

13) return -1;

14) }

15) finally{

16) System.out.println("two");

17) }

18) return 0;

19) }

20)}

如果文件test.txt与Test.java在同一个目录下,test.txt中仅有一行字符串“hello world!”,运行结果是什么?

/*

Test t=new Test();

创建test.txt文件的FileInputStream对象,对象引用名为din

运行结果是:

two

*/

24、假设有一个文件为c:\test.txt,则用FileInputStream类创建该文件引用对象fin的语句是 _____ ,用BufferedReader类去读取该文件需创建引用对象br的语句是____________________________________________________。

// FileInputStream fin=new FileInputStream("c:\test.txt");

BufferedReader br=new BufferedReader(new FileReader("c:\test.txt"));

三、简答题

1、仔细阅读下面的程序,写出程序的执行顺序(写出编号):

public class UsingExceptions {

public static void main( String args[] )

{

try{

method1(); // 1

}catch(Exception e){

System.err.println(e.getMessage()); // 2

}

finally{

System.out.println("Program is end!"); // 3

}

}

public static void method1() throws Exception

{

method2(); //4

}

public static void method2() throws Exception

{

method3(); //5

}

public static void method3() throws Exception

{

throw new Exception( "Exception thrown in method3" ); //6

}

}

2、阅读下面的程序Test.java,先填写空格的内容,然后写出运行结果:

import java.io.*;

public class Test{

public static void main(String argv[]){

; //创建Test对象,对象名为t

System.out.println(t.fliton());

}

public int fliton(){

try{

//第9行的含义是:

FileInputStream din = new FileInputStream("test.txt");

din.read();

}catch(IOException ioe){ //第11行的含义是:

System.out.println("one");

return -1;

}

finally{

System.out.println("two");

}

return 0;

}

}

如果文件test.txt与Test.java在同一个目录下,test.txt中仅有一行字符串“hello world!”,运行结果是什么?

3、阅读下面的程序Test.java:

import java.io.*;

public class Test{

public static void main(String argv[]){

Test t = new Test();

System.out.println(t.fliton());

}

public int fliton(){

try{

FileInputStream din = new FileInputStream("test.txt");

din.read();

}catch(IOException ioe){

System.out.println("one");

return -1;

}

finally{

System.out.println("two");

}

return 0;

}

}

如果文件test.txt与Test.java在同一个目录下,test.txt中仅有一行字符串“hello world!”,上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么?

4、阅读下面的程序TestMonth.java:

public class TestMonth{

public static void main(String []args){

try{

int month=Integer.parseInt(args[0]);

if(month<0||month>12){

throw new ArithmeticException("没有"+month+"月份!");

}

System.out.println("您输入的月份为"+month+"月份");

}catch(ArrayIndexOutOfBoundsException e){

System.out.println("请输入月份!");

}catch(ArithmeticException e){

System.out.println("捕获ArithmeticException异常");

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

}

}

}

已知ArrayIndexOutOfBoundsException和ArithmeticException都是https://www.wendangku.net/doc/557230141.html,ng.*下的异常类,编译TestMonth.java后,用java TestMonth 13的运行结果是什么?

参考答案:

捕获ArithmeticException异常

https://www.wendangku.net/doc/557230141.html,ng.ArithmeticException:没有13月份!

5、运行时异常与一般异常有何异同?

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

6、Java中的异常处理机制的简单原理和应用。

当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。

违反语义规则包括2种情况一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。

另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是https://www.wendangku.net/doc/557230141.html,ng.Thowable的子类。

7、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?

Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口

在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,

调用这个对象的方法可以捕获到这个异常并进行处理。

Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。

一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。

用try来指定一块预防所有“异常”的程序。紧跟在try程序后面,应包含一个catch 子句来指定你想要捕捉的“异常”的类型。

throw语句用来明确地抛出一个“异常”。throws用来标明一个成员函数可能抛出的各种“异常”

Finally为确保一段代码不管发生什么“异常”都被执行一段代码。可以在一个成员函数调用的外面写一个try语句,

时间是李寻欢手里的飞刀,当你突然感觉到它的存在,它已经结实的钉在你喉咙上了。

在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,“异常”

的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种“异常”进行处理,堆栈就会展开,直到遇到有处理这种“异常”的try语句。

8、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

字节流,字符流。字节流继承于InputStream \ OutputStream,字符流继承于InputStreamReader \ OutputStreamWriter。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。

9、什么是java序列化,如何实现java序列化?

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。

可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。

序列化是为了解决在对对象流进行读写操作时所引发的问题。

序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,

implements Serializable只是为了标注该对象是可被序列化的,

然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,

接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),

要恢复的话则用输入流。

10、在Java中,以下的异常:https://www.wendangku.net/doc/557230141.html,ng.Excetion,https://www.wendangku.net/doc/557230141.html,ng.RuntimeException,https://www.wendangku.net/doc/557230141.html,ng.Error有什么区别?

Error类对象由Java虚拟机生成并抛出,Exception类对象由应用程序处理或抛出

error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

Error表示系统级的错误和程序不必处理的异常,

RuntimeException是Exception的子类,一般来说该异常是程序在运行时抛出这种错误编译是无法捕捉的,如果在程序中不加处理,在程序运行就会产生并上缴给JVM处理。

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。Java编译器要求方法必须声明抛出可能发生的非运行时异常同,但是并不要求必须声明抛出未被捕获的运行时异常。

exception表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况

Exception表示需要捕捉或者需要程序进行处理的异常。

11.Java中异常处理机制、事件机制?

异常处理机制:

Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。这种机制为复杂程序提供了强有力的控制方式。同时这些异常代码与“常规”代码分离,增强了程序的可读性,编写程序时也显得更灵活。异常处理还有一个好处是在你不能确定和处理异常时,你可以不处理,而把问题提交上去。另一方面,异常处理机制便利错误处理代码更有条理,更便于维护。

事件机制:

事件从事件源到监听者的传递是通过对目标监听者对象的Java方法调用进行的。对每个明确的事件的发生,都相应地定义一个明确的Java方法。这些方法都集中定义在事件监听者(EventListener)接口中,这个接口要继承java.util.EventLlistener。实现了事件监听者接口中一些或全部方法的类就是事件监听者。伴随着事件的发生,相应的状态通常都封装在事件状态对象中,该对象必须继承自java.util.EventObject。事件状态对象作为单参数传递给应响应该事件的监听者方法中。发出某种特定事件的事件源的标识是:遵从规定的设计格式为事件监听者定义注册方法,并接受对指定事件监听者接口实例的引用。有时,事件监听者不能直接实现事件监听者接口,或者还有其它和额外动作时,就要在一个源与其它一个或多个监听者之间插入一个事件适配器类的实例,来建立它们之间的联系。

四、编程题

1、编写一个java课的成绩统计程序,从键盘输入学生姓名和成绩,程序按成绩排出名次,并统计出最高分、最低分、平均分。学生的个数在程序运行前是未知数。

2、编写一个文件拷贝的程序,将文件C:\test1.txt的内容拷贝到C:\test2.txt中。

参考代码如下:

import java.io.*;

public class CopyFile {

public static void main(String args[]){

FileInputStream from = null;

FileOutputStream to = null;

try {

from = new FileInputStream("c:/test1.txt");

to = new FileOutputStream("c:/test2.txt");

byte[] buffer = new byte[4096];

int bytes_read;

while ( (bytes_read = from.read(buffer)) != -1) {

to.write(buffer, 0, bytes_read);

}

from.close();

to.close();

}catch (IOException e) {

e.printStackTrace();

}

}

}

一个完整的copy文件的参考程序如下:

import java.io.*;

class CopyFile{

public boolean copy(String fromFileName, String toFileName,boolean override) { File fromFile = new File(fromFileName);

File toFile = new File(toFileName);

if (!fromFile.exists() || !fromFile.isFile() || !fromFile.canRead()) {

return false;

}

if (toFile.isDirectory()) {

toFile = new File(toFile, fromFile.getName());

}

if (toFile.exists()) {

if (!toFile.canWrite() || override == false) {

return false;

}

}

else {

String parent = toFile.getParent();

if (parent == null) {

parent = System.getProperty("user.dir");

}

File dir = new File(parent);

if (!dir.exists() || dir.isFile() || !dir.canWrite()) {

return false;

}

}

FileInputStream from = null;

FileOutputStream to = null;

try {

from = new FileInputStream(fromFile);

to = new FileOutputStream(toFile);

byte[] buffer = new byte[4096];

int bytes_read;

while ( (bytes_read = from.read(buffer)) != -1) {

to.write(buffer, 0, bytes_read);

}

return true;

}

catch (IOException e) {

return false;

}

finally {

if (from != null) {

try {

from.close();

}

catch (IOException e) { }

}

if (to != null) {

try {

to.close();

}

catch (IOException e) { }

}

}

}

public static void main(String args[]){

CopyFile cf=new CopyFile();

if(cf.copy("1.gif","2.gif",false)==true){

System.out.println("文件拷贝成功!");

}

else{

System.out.println("文件未拷贝!");

}

}

}

3、编写一个程序,类名为WordCount,统计单词“hello”在一篇英文文章(保存在文件article.txt)中出现的次数,要求统计时忽略单词的大小写,统计结果在屏幕上打印出来的格式为:单词***在文章***中出现的次数为:10。

提示:下面是String类中的几个方法:

(1)public int indexOf(String str) //返回指定子字符串在此字符串中第一次出现处的

索引。

(2)public int indexOf(String str,int fromIndex) //从指定的索引开始,返回指定子字

符串在此字符串中第一次出现处的索引。

(3)public String toUpperCase() // String 中的所有字符都转换为大写

(4)public String toLowerCase () // String 中的所有字符都转换为小写

参考代码如下:

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

class WordCount{

int getWordCount(String articleName,String word){

int count=0;

String sentence;

try{

BufferedReader br=new BufferedReader(new FileReader(articleName));

word=word.toLowerCase();

while((sentence=br.readLine())!=null){

sentence=sentence.toLowerCase();

int index=sentence.indexOf(word);

while(index>=0){

count++;

index=sentence.indexOf(word,index+word.length());

}

}

}catch(IOException e){}

return count;

}

public static void main(String args[]){

String article="article.txt";

String word="stock";

WordCount w=new WordCount();

System.out.println("单词"+word+"在文章"+article+"中出现的次数为:

"+w.getWordCount(article,word));

}

}

4、编写一个程序N_Digital.java,随机生成n个数,n的值也随机生成,n的取值范围为10~50。要求将生成的n个数从大到小排序写入n.txt文件保存。

参考代码如下:

import java.io.*;

public class N_Digital{

public void initNum(int[] num){

if (num == null) {

throw new NullPointerException("参数不能为null!");

}

for (int i=0;i

num[i]=(int)(Math.random()*40)+10;

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

}

}

public void sortNum(int[] obj){

if (obj == null) {

throw new NullPointerException("参数不能为null!");

}

int tmp;

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

//切记,每次都要从第一个开始比。最后的不用再比。

for (int j = 0 ;j < obj.length -i -1 ;j++ ) {

//对邻接的元素进行比较,如果后面的小,就交换

if (obj[j]

tmp = obj[j];

obj[j] = obj[j+1];

obj[j+1] = tmp;

} //if

} //for

} //for

}

public void writeToFile(int[]num,String file){

try{

File f=new File(file);

if(!f.exists())f.createNewFile();

PrintWriter out = new PrintWriter(new FileWriter(file));

for(int i=0;i

out.print(num[i]+" ");

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

}

out.close();

}catch(IOException ioe){

}

}

public static void main(String []args){

int n=(int)(Math.random()*40)+10;

int num[]=new int[n];

N_Digital nd=new N_Digital();

nd.initNum(num);

nd.sortNum(num);

System.out.println();

nd.writeToFile(num,"n.txt");

}

}

5、编写一个Java程序ReadFileContent.java读取当前目录下的Test.txt文件内容(内容含有中文字),将该文件的内容按行读取出来,并在每行前面加上行号后写入当前目录的myTest.txt文件中。

import java.io.*;

class ReadFileContent{

public static void main(String args[]){

int i=0;

try {

BufferedReader br = new BufferedReader(new FileReader("Test.txt")); String line = br.readLine();

PrintWriter out = new PrintWriter(new FileWriter("myTest.txt"));

while(line!=null){

i++;

out.println(i+" "+line);

line = br.readLine();

}

br.close();

out.close();

}catch (Exception e) {

e.printStackTrace();

}

}

}

6、编写一个程序WriteLog.java实现如下功能:从键盘输入若行文字(可能包含中文),当最后一行输入quit#时,退出程序且将输入内容除quit#外全部存入文件c:\log.txt中。参考答案:

import java.io.*;

public class WriteLog {

public static void main(String []args){

String f="c:/log.txt";

String str="";

try{

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

PrintWriter bw=new PrintWriter(new FileWriter(f));

System.out.println("Please input file text:");

while(!(str=keyIn.readLine()).equals("quit#")){

bw.println(str);

}

bw.close();

}catch(IOException e){

}

}

}

7、根据以下说明,编写一个银行账户类Account,并编写一个main方法,对Account类进行测试,在main方法中要调用Account的所有方法,发生异常时,要打印异常信息。

实验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 输入输出流及文件读写详解

I/O类体系 在JDK API中,基础的IO类都位于java.io包,而新实现的IO类则位于一系列以java.nio开头的包名中,这里首先介绍java.io包中类的体系结构。 按照前面的说明,流是有方向的,则整个流的结构按照流的方向可以划分为两类: 1、输入流: 该类流将外部数据源的数据转换为流,程序通过读取该类流中的数据,完成对于外部数据源中数据的读入。 2、输出流: 该类流完成将流中的数据转换到对应的数据源中,程序通过向该类流中写入数据,完成将数据写入到对应的外部数据源中。 而在实际实现时,由于JDK API历史的原因,在java.io包中又实现了两类流:字节流(byte stream)和字符流(char stream)。这两种流实现的是流中数据序列的单位,在字节流中,数据序列以byte为单位,也就是流中的数据按照一个byte一个byte的顺序实现成流,对于该类流操作的基本单位是一个byte,而对于字节流,数据序列以char为单位,也就是流中的数据按照一个char一个插入的顺序实现成流,对于该类流操作的基本单位是一个char。 另外字节流是从JDK1.0开始加入到API中的,而字符流则是从JDK1.1开始才加入到API中的,对于现在使用的JDK版本来说,这两类流都包含在API的内部。在实际使用时,字符流的效率要比字节流高一些。 在实际使用时,字符流中的类基本上和字节流中的类对应,所以在开始学习IO类时,可以从最基础的字节流开始学习。 在SUN设计JDK的IO类时,按照以上的分类,为每个系列的类设计了一个父类,而实现具体操作的类都作为该系列类的子类,则IO类设计时的四个体系中每个体系中对应的父类分别是: 字节输入流InputStream 该类是IO编程中所有字节输入流的父类,熟悉该类的使用将对使用字节输入流产生很大的帮助,下面做一下详细的介绍。 按照前面介绍的流的概念,字节输入流完成的是按照字节形式构造读取数据的输入流的结构,每个该类的对象就是一个实际的输入流,在构造时由API完成将外部数据源转换为流对象的操作,这种转换对程序员来说是透明的。在程序使用时,程序员只需要读取该流对象,就可以完成对于外部数据的读取了。

Java输入、输出流

第八章输入输出流 【课前思考】 1.字节流和字符流的基类各是什么? 2.什么是对象的串行化?对象串行化的作用是什么? 【学习目标】 本讲主要讲述了java语言中的输入/输出的处理,通过本讲的学习,同学们可以编写更为完善的java 程序。 【学习指南】 仔细阅读本章各知识点的内容, 深刻理解 java 语言中输入/输出流的处理方法,掌握处理问题的方法,多练习,多上机。 【难重点】 ●遇到实际问题时,要根据需要正确使用各种输入/输出流,特别是对中文使用适当的字符输入流。 ●正确使用对象串行化的方法。 ●处理字符流时,其构造方法的参数是一个字节流。 ●对象串行化的概念。 【知识点】 ●I/O 流概述 ●文件处理 ●过滤流 ●字符流的处理 ●对象的串行化 ●其它常用的流 【内容】 第一节数据流的基本概念 理解数据流 流一般分为输入流(Input Stream)和输出流(Output Stream)两类,但这种划分并不是绝对的。比如一个文件,当向其中写数据时,它就是一个输出流;当从其中读取数据时,它就是一个输入流。当然,键盘只是一个数人流,而屏幕则只是一个输出流。 Java的标准数据流 标准输入输出指在字符方式下(如DOS),程序与系统进行交互的方式,分为三种: 标准输入studin,对象是键盘。 标准输出stdout,对象是屏幕。 标准错误输出stderr,对象也是屏幕。 例 8.1 从键盘输入字符。 本例用System.in.read(buffer)从键盘输入一行字符,存储在缓冲区buffer中,count保存实际读入的字节个数,再以整数和字符两种方式输出buffer中的值。Read方法在java.io包中,而且要抛出IOException异常。程序如下: import java.io.*; public class Input1 { public static void main(String args[]) throws IOException { System.out.println("Input: ");

Java基础输入输出

Java基础输入输出 io包支持Java的基本I/O(输入/输出)系统,包括文件的输入/输出。对输入/输出的支持是来源于Java的内核API 库,而不是语言关键字。 一、输入/输出基础 很多实际的Java应用程序不是基于文本的控制台程序。尽管基于文本的程序作为教学实例是很出色的,它们无法胜任JA V A在实际中的重要应用。Java对外设输入/输出的支持也是有限的,并且用起来有些笨拙——甚至是在简单的例子程序中。基于文本的控制台输入/输出对于Java程序并不是十分重要。 Java 提供了与文件和网络相关的强大的和灵活的输入/输出支持,Java的输入/输出系统是紧密相连并且是具有一致性的。 1.1 流的概念 Java程序通过流来完成输入/输出。流是生产或消费信息的抽象。流通过Java的输入/输出系统与物理设备链接。尽管与它们链接的物理设备不尽相同,所有流的行为具有同样的方式。这样,相同的输入/输出类和方法适用于所有类型的外部设备。这意味着一个输入流能够抽象多种不同类型的输入:从磁盘文件,从键盘或从网络套接字。同样,一个输出流可

以输出到控制台,磁盘文件或相连的网络。流是处理输入/输出的一个洁净的方法,例如它不需要代码理解键盘和网络的不同。Java中流的实现是在java.io包定义的类层次结构内部的。 1.2 字节流和字符流 要使用流类,必须导入Java.io包。Java 2 定义了两种类型的流:字节类和字符类。字节流(byte stream)为处理字节的输入和输出提供了方便的方法。例如使用字节流读取或书写二进制数据。字符流(character stream)为字符的输入和输出处理提供了方便。它们采用了统一的编码标准,因而可以国际化。在某些场合,字符流比字节流更有效。在最底层,所有的输入/输出都是字节形式的。基于字符的流只为处理字符提供方便有效的方法。下面是对字节流和字符流的概述。 1.2.1 字节流类 字节流由两个类层次结构定义。在顶层有两个抽象类:InputStream 和OutputStream。每个抽象类都有多个具体的子类,这些子类对不同的外设进行处理,例如磁盘文件,网络连接,甚至是内存缓冲区。字节流类显示于表1-1中。 表1-1 字节流类 流类含义 BufferedInputStream缓冲输入流 BufferedOutputStream缓冲输出流

Java 输入输出(含部分答案)

Java输入输出 知识点: 1、文件和流的操作,理解字节流和字符流的概念 2、异常处理的概念,自定义异常类 一、选择题 1、如果一个程序段中有多个catch,则程序会按如下哪种情况执行( ) A)找到合适的例外类型后继续执行后面的catch B)找到每个符合条件的catch都执行一次 C)找到合适的例外类型后就不再执行后面的catch D)对每个catch都执行一次 2、程序员将可能发生异常的代码放在()块中,后面紧跟着一个或多个()块。 A) catch、try B) try、catch C) try、exception D) exception、try 3、在Java语言中,在程序运行时会自动检查数组的下标是否越界,如果越界,会抛掷下面的异常( ) A) SQLException B) IOException C) ArrayIndexOutOfBoundsExcetion D) SecurityManager 4、在Java中,关于捕获异常的语法try-catch-finally的下列描述哪些正确( ) A) try-catch必须配对使用B) try可以单独使用 C) try-finally必须配对使用D) 在try-catch后如果定义了finally,则finally肯定会执行 5、给定下面的代码片断: public class Animal{ public void Cat(){ try{ Method(); } catch(ArrayIndexOutBoundsException e) {"Exception1");} catch(Exception e) {"Exception2");} finally {"Hello World!!");} } public void Method() { } public static void main(String[] args) { =new Animal (); Ani. Cat (); } } 如果函数method正常运行并返回,会显示下面的哪些信息( ) A) Hello World B) Exception1 C) Exception2 D) Hello World!!

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

成都大学实验报告 实验项目名称Java的输入与输出流 一、实验目的: 1. 理解I/O流的概念,掌握其分类 2. 掌握文本文件读写、二进制文件读写 二、实验内容(包括源程序及相关说明): 1. 分别使用FileWriter 和 BufferedWriter 往文件中写入10万个随机数,比较用时。源代码如下: (1) import .*; public class Ex1_1 { public static void main(String[] args) throws IOException{ long t=(); FileWriter fw =new FileWriter("d:\\"); for(int i=1;i<=100000;i++) { ((int)()*10000)+" \n"); } (); t=()-t; "The elapsed: "+t); } } (2) import .*; public class Ex1_1 { public static void main(String[] args) throws IOException{ long t=(); BufferedWriter fw=new BufferedWriter(new FileWriter("d:\\")); for(int i=1;i<=100000;i++){

((int)()*10000)+"\n"); } (); t=()-t; "The elapsed: "+t); } } 2. 生成一个 html文件,使其能显示2的幂次(0~9)的表格如下: 代码如下: import .*; public class Ex1_1 { public static void main(String[] args) throws IOException{ BufferedWriter bw=new BufferedWriter(new FileWriter("d:\\")); ("

"); (); (""); for(int i=0;i<=9;i++){ (""); } ("
Power of 2Value
"+i+""+(i, 2)+"
"); (); (); } } 3. 在文本文件中包含有很长篇幅的英语短文,编写程序要求统计文件的所有短文中包含英文字母“A”的个数,并显示统计的时间。 第一种实现方法 代码如下: import class EXP1_1 { public static void main(String[] args) throws IOException{ long t =(); String filename="D:\\"; FileInputStream fis=new FileInputStream(filename); int count=0;

java第九章输入输出文件练习

第9章I/O系统 一、选择题 1、下列数据流中,属于输入流的是(b ) A. 从内存流向硬盘的数据流 B. 从键盘流向内存的数据流 C. 从键盘流向显示器的数据流 D. 从网络流向显示器的数据流 2、Java语言中提供输入输出流的包是(d ) A. java.sql B. java.util C. java.math D. java.io 3、下列流中哪一个使用了缓冲区技术?( a ) A. BufferedOutputStream B. FileInputStream C. DataOutputStream D. FileReader 4、下列说法,错误的是( a ) A. FileReader是用文件字节流的读操作 B. PipedInputStream 用于字节流管道流的读操作 C. Java的I/O流包括字符流和字节流 D. DataInputStream被称为数据输入流 5、下列程序建立一个myFile.dat文件,并且允许按照不同的数据类型向里面写入数据,选择正确的一项填入程序的横线处( c )。 Import java.io.* Public class Test1{ Public static void main(String[] args){ Try{ FileOutputStream fos=new FileOutputStream(“myFile.dat”); }catch(Exception e){ e.printStackTrace( ); } } } A.OutputStream os=new OutputStream(fos); B.DataOutputStream dos=new DataOutputStream( ); C.DataOutputStream dos=new DataOutputStream(fos ); D.FileOutputStream fos=new FileOutputStream(fos); 6、下列说法错误的是(b ) A. java的标准输入对象为System.in B. 打开一个文件时不可能产生IOException C. 使用File对象乐意判断一个文件是否存在 D. 使用File对象可以判断一个目录是否存在 二、填空题 1、按照流的处理数据的基本单位,I/O流包括输入输入流和输出流。 2、java中,将用于向java程序输入数据的数据源构造成输入流,java通过输出流向目的地输出数据。 3、java中,所有的输入流类都是Inputstream 类或者Reader 类的子类,它们 都继承了read() 方法用于读取数据。所有输出流类都是Outputstream 类或

工业控制计算机系统 功能模块模板 第6部分:数字量输入输出通

I C S25.040.40 N18 中华人民共和国国家标准 G B/T26804.6 2011 工业控制计算机系统功能模块模板第6部分:数字量输入输出通道模板 性能评定方法 I n d u s t r i a l c o n t r o l c o m p u t e r s y s t e m F u n c t i o nm o d u l e s P a r t6:M e t h o d s o f e v a l u a t i n g t h e p e r f o r m a n c e f o r d i g i t a l i n p u t/o u t p u t c h a n n e lm o d u l e s 2011-07-29发布2011-12-01实施中华人民共和国国家质量监督检验检疫总局

目 次 前言Ⅲ…………………………………………………………………………………………………………1 范围1………………………………………………………………………………………………………2 规范性引用文件1…………………………………………………………………………………………3 术语和定义1………………………………………………………………………………………………4 试验条件2…………………………………………………………………………………………………4.1 环境条件2………………………………………………………………………………………………4.2 动力条件2………………………………………………………………………………………………5 D I 通道模板功能及基本性能检验2………………………………………………………………………5.1 功能检查2………………………………………………………………………………………………5.2 性能检验3………………………………………………………………………………………………6 D O 通道模板功能及基本性能检验4……………………………………………………………………6.1 功能检查4………………………………………………………………………………………………6.2 性能检验4………………………………………………………………………………………………7 结构尺寸和外观检查5……………………………………………………………………………………7.1 结构尺寸检查5…………………………………………………………………………………………7.2 外观检查5………………………………………………………………………………………………8 电源适应能力试验5………………………………………………………………………………………8.1 电源电压暂降影响试验5………………………………………………………………………………8.2 电源电压短时中断影响试验5…………………………………………………………………………8.3 电源电压变化影响试验5………………………………………………………………………………9 共模抗扰度试验5…………………………………………………………………………………………9.1 D I 通道模板共模抗扰度试验5…………………………………………………………………………9.2 D O 通道模板共模干扰影响试验6……………………………………………………………………10 环境影响试验6……………………………………………………………………………………………10.1 环境温度影响试验6……………………………………………………………………………………10.2 环境相对湿度影响试验6………………………………………………………………………………10.3 振动影响试验6…………………………………………………………………………………………11 电磁兼容抗扰度试验6……………………………………………………………………………………11.1 射频电磁场辐射抗扰度试验6…………………………………………………………………………11.2 工频磁场抗扰度试验6…………………………………………………………………………………11.3 静电放电抗扰度试验6…………………………………………………………………………………11.4 电快速瞬变脉冲群抗扰度试验6………………………………………………………………………11.5 浪涌( 冲击)抗扰度试验6………………………………………………………………………………11.6 射频场感应的传导骚扰抗扰度试验6…………………………………………………………………12 抗运输环境影响试验7……………………………………………………………………………………12.1 抗运输高温影响试验7…………………………………………………………………………………12.2 抗运输低温影响试验7…………………………………………………………………………………12.3 抗运输湿热影响试验7…………………………………………………………………………………G B /T 26804.6 2011

实验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数据的输入和输出

JA V A数据的输入和输出 一、数据的输出 1、使用System.out.println(输出项)方法 System.out.println(输出项); 输出结果后换行。输出项可以是变量名、常量、表达式。 例: public class ex1 { public static main(String args[]) { System.out.println("欢迎学习JA V A"); //输出: 欢迎学习JA V A System.out.println(10*2+4); //输出: 24 System.out.println("a="+20); //输出: a=20 } } 2、使用System.out.print()方法 System.out.print(输出项); 在当前位置输出结果。 如: public class ex2 { public static void main(String args[]) { System.out.print("欢迎学习JA V A"); //输出: 欢迎学习JA V A System.out.print(10*2+4); //输出: 24 System.out.println("a="+20); //输出: a=20 System.out.println("b="+30); } }

3、使用javax.swing.JOptionPane包的showMessageDialog()方法 import javax.swing.JOptionPane; public class ex3 { public static void main(String[] args) { JOptionPane.showMessageDialog(null,"我学习JA V A,我快乐"); System.exit(0); } } 程序解释 (1)语句import javax.swing.JOptionPane;是导入语句,为编译器找到程序中要使用的类。(2)main()方法中的语句: JOptionPane.showMessageDialog(null,"我学习JA V A,我快乐"); 从类库加载的JOptionPane类中调用showMessageDialog()方法,这是一个显示对话框的方法。该方法有两个参数,第1个参数为null,第2参数是要显示的字符串,参数间用逗号分开。(3)System.exit(0)语句使用System类的exit()方法结束程序的运行。 二、数据的输入 1、使用命令行参数 main(String args[])方法的参数数组args接收命令行的参数,args[0]存放第一个参数字符串,args[1]存放第二个参数字符串,依此类推。 各个参数数组元素args[i]的值都是字符串,必须在main()方法中用相关的转换方法把字符串转换为对应的数据类型。(P142表10-1) 【例】从键盘上输入圆的半径,求圆的周长和面积。

数字系统设计报告

数字电路与系统设计实验报告 班级: 学号: 姓名: 地点: 批次: 时间:

一.实验目的 通过基本门电路性能测试实验使学生掌握基本门电路的工作原理、门电路的外特性(IC门电路的引脚排列顺序,输入/输出电平要求等);通过计算机仿真技术使学生掌握组合逻辑电路的设计方法,掌握触发器功能及其波形关系,掌握时序电路的设计方法,培养学生的实践动手能力和实验技能。 二.实验内容 ●实验一基本逻辑门电路实验 一、基本逻辑门电路性能(参数)测试 (一)实验目的 1.掌握TTL与非门、与或非门和异或门输入与输出之间的逻辑关系。 2.熟悉TTL中、小规模集成电路的外型、管脚和使用方法。 (二)实验所用器件和仪表 l.二输入四与非门74LS00 1片 2.二输入四或非门74LS02 1片 3.二输入四异或门74LS86 1片 (三)实验内容 1.测试二输入四与非门74LS00一个与非门的输入和输出之间的逻辑关系。 2.测试二输入四或非门74LS02一个或非门的输入和输出之间的逻辑关系。 3.测试二输入四异或门74LS86一个异或门的输入和输出之间的逻辑关系。(四)实验提示 1.将被测器件插入实验台上的14芯插座中。 2.将器件的引脚7与实验台的“地(GND)”连接,将器件的引脚14与实验台的十5V连接。 3.用实验台的电平开关输出作为被测器件的输入。拨动开关,则改变器件的输入电平。 4.将被测器件的输出引脚与实验台上的电平指示灯(LED)连接。指示灯亮表示输出低电平(逻辑为0),指示灯灭表示输出高电平(逻辑为1)。

(五)实验接线图及实验结果 74LS00中包含4个二输入与非门,7402中包含4个二输入或非门,7486中包含4个二输入异或门,它们的引脚分配图见附录。下面各画出测试7400第一个逻辑门逻辑关系的接线图及测试结果。测试其它逻辑门时的接线图与之类似。测试时各器件的引脚7接地,引脚14接十5V。图中的K1、K2接电平开关输出端,LED0是电平指示灯。 1、测试74LS00逻辑关系 2、测试74LS28逻辑关系 3、测试74LS86逻辑关系 输 入输 出引脚1 引脚3 引脚2LED0 L L L L H H H H 图1.1 测试74LS00逻辑关系接线图 表1.1 74LS00真值表 输 入输 出引脚2 引脚1 引脚3K1K2 L L L L H H H H 图1.2 测试74LS28逻辑关系接线图 表1.2 74LS28真值表

BIOS(基本输入输出系统)

BIOS(基本输入/输出系统)是被固化在计算机CMOS RAM芯片中的一组程序,为计算机提供最初的、最直接的硬件控制。BIOS主要有两类∶AWARD BIOS和AMI BIOS。正确设置BIOS可大大提高系统性能。 第一部分、AWARD BIOS设置 一、进入 BIOS 设置 电脑刚启动,出现如下图1画面时。 图1 当出现图1画面时,按下Delete(或者Del)键不放手直到进入BIOS(基本输入/输出系统)设置,如下图2 图2(主菜单) 上图是AWARD BIOS设置的主菜单。最顶一行标出了Setup程序的类型是Award Software 。项目前面有三角形箭头的表示该项包含子菜单。主菜单上共有13个项目,分别为∶ Standard CMOS Features(标准CMOS功能设定) 设定日期、时间、软硬盘规格及显示器种类。 Advanced BIOS Features(高级BIOS功能设定) 对系统的高级特性进行设定。

Advanced Chipset Features(高级芯片组功能设定) 设定主板所用芯片组的相关参数。 Integrated Peripherals(外部设备设定) 使设定菜单包括所有外围设备的设定。如声卡、Modem、USB键盘是否打开... Power Management Setup(电源管理设定) 设定CPU、硬盘、显示器等设备的节电功能运行方式。 PNP/PCI Configurations(即插即用/PCI参数设定) 设定ISA的PnP即插即用介面及PCI介面的参数,此项仅在您系统支持PnP/PCI时才有效。 Frequency/Voltage Control(频率/电压控制) 设定CPU的倍频,设定是否自动侦测CPU频率等。 Load Fail-Safe Defaults(载入最安全的缺省值) 使用此菜单载入工厂默认值作为稳定的系统使用。 Load Optimized Defaults(载入高性能缺省值) 使用此菜单载入最好的性能但有可能影响稳定的默认值。 Set Supervisor Password(设置超级用户密码) 使用此菜单可以设置超级用户的密码。

JAVA输入输出和基本算法技巧

在有多行数据输入的情况下,一般这样处理, plaincopy 1.static Scanner in=new Scanner(System.in); 2.while(in.hasNextInt()) 3.或者是 4.while(in.hasNext()) 5.有关System.nanoTime()函数的使用,该函数用来返回最准确的可用系统计时器的当前值,以毫微秒为单位。 plaincopy 1.long startTime=System.nanoTime(); 2.//...the code being measured... 3.long estimatedTime=System.nanoTime()-startTime; 二、Java之输入输出处理 由于ACM竞赛题目的输入数据和输出数据一般有多组(不定),并且格式多种多样,所以,如何处理题目的输入输出是对大家的一项最基本的要求。这也是困扰初学者的一大问题。1.输入: 格式1:Scanner sc=new Scanner(new BufferedInputStream(System.in)); 格式2:Scanner sc=new Scanner(System.in); 在读入数据量大的情况下,格式1的速度会快些。 读一个整数:int n=sc.nextInt();相当于scanf("%d",&n);或cin>>n; 读一个字符串:String s=sc.next();相当于scanf("%s",s);或cin>>s; 读一个浮点数:double t=sc.nextDouble();相当于scanf("%lf",&t);或cin>>t; 读一整行:String s=sc.nextLine();相当于gets(s);或cin.getline(...); 判断是否有下一个输入可以用sc.hasNext()或sc.hasNextInt()或sc.hasNextDouble()或 sc.hasNextLine()

Java 输入输出 的 基本原理及示例

来自: 亿淘城_减肥榜的个人笔记 xx你的支持(*^__^*)嘻嘻…… Java I/O原理 →基本概念: I/O(Input/Output) 数据源(Data Source) 数据xx(Data Sink) →Java中把不同的数据源与程序间的数据传输都抽象表述为“流”(Stream),java.io包中定义了多种I/O流类型实现数据I/O功能。 →I/O流分类: 输入流(Input Stream)和输出流(Output Stream) 节点流(Node Stream)和处理流(Processing Stream) 字符流(Character Stream)和字节流(Byte Stream) #输入流(Input Stream)和输出流(Output Stream) 1.输入流只能从中读取数据,而不能向其写数据; 2.输出流则只能向其写出数据,而不能从中读取数据; 3.特例: java.io.RandomAccessFile类。 #节点流(Node Stream)和处理流(Processing Stream) 1.节点流直接连接到数据源

2.处理流是对一个已存在的流的连接和封装,通过所封装的刘的功能 调用实现增强的数据读写功能,处理流并不直接连到数据源#字符流(Character Stream)和字节流(Byte Stream) 1.字节流以字节为单位进行数据传输,每次传送一个或多个字节。 2.字符流以字符为单位进行数据传输,每次传送一个或多个字符。 ※Java命名惯例: 凡是以InputStream 或OutputStream结尾的类型均为字节流,凡是以Reader或Writer 结尾的均为字符流。 InputStream 抽象类java.io.InputStream 是所有字节输入流类型的父类,该类中定义了以字节为单位读取数据的基本方法,并在其子类中进行了分化和实现。 ◆三个基本的read方法: Int read() Int read(byte[] buffer) Int read(byte[] buffer,int offset,int length) ◆其它方法: Void close() Int available() Skip(long n) Boolean markSupported() Void mark(int readlimit) Void reset()

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的数据输出到流

java基本输入输出入门

Java基本输入输出入门 一、Java基本开发环境 1.JDK1.5以上编译运行环境 2.Ecllipse 3.2以上开发环境 二、Java之输入输出处理 由于ACM竞赛题目的输入数据和输出数据一般有多组(不定),并且格式多种多样,所以,如何处理题目的输入输出是对大家的一项最基本的要求。这也是困扰初学者的一大问题。 1.输入: 格式1:Scanner sc=new Scanner(new BufferedInputStream(System.in)); 格式2:Scanner sc=new Scanner(System.in); 在读入数据量大的情况下,格式1的速度会快些。 读一个整数:int n=sc.nextInt();相当于scanf("%d",&n);或cin>>n; 读一个字符串:String s=sc.next();相当于scanf("%s",s);或cin>>s; 读一个浮点数:double t=sc.nextDouble();相当于scanf("%lf",&t);或cin>>t; 读一整行:String s=sc.nextLine();相当于gets(s);或cin.getline(...); 判断是否有下一个输入可以用sc.hasNext()或sc.hasNextInt()或sc.hasNextDouble()或sc.hasNextLine() 例1:读入整数 Input输入数据有多组,每组占一行,由一个整数组成。 Sample Input 56 67 100 123 import java.util.Scanner; public class Main{ public static void main(String[]args){ Scanner sc=new Scanner(System.in); while(sc.hasNext()){//判断是否结束 int score=sc.nextInt();//读入整数 。。。。 } }

java输入输出语句

System.out.print ——标准输出流 Java的流类,主要是:输入流类InputStream 输出流类OutputStream Java系统预先定义好3个流对象,静态属性 System.out 标准输出设备:显示器 System.in 标准输入设备:键盘 System.err 标准错误设备:屏幕 System.out PrintStream类对象,输出字节数据流 System.in InputStream类对象,输入字节数据流 System.err printStream类对象,输出系统错误信息 输入:命令行——Eclipase“运行设置”中的参数 直接从键盘输入——Like C Language ——专业术语:控制台窗口输入,即程序直接读取键盘输入的数据 public class Root { //求解方程ax+b=0的根x public static void main(String args[]) { float a, b, x; a=Float.parseFloat (args[0]); //命令行输入第一个数 b=Float.parseFloat (args[1]); //命令行输入第二个数 x=-b/a; // 求根 x System.out.println("x="+x); } } 将命令行第i个输入转换为以下类型的数据: 整型数 a=Integer.parseInt(args[i]); 短整型 a=Short.parseShort(args[i]); 单精度浮点: a=Float.parseFloat(args[i]); 双精度浮点: a=Double.parseDouble(args[i]); a=Long.parseLong (args[i]); a=Byte.parseByte (args[i]); Java 控制台输入 System.in.read() import java.io.*; // 声明导入IO包需要处理异常 throws IOException 要导入 java.io.* public class StandardIn1 { public static void main(String[] args) throws IOException{ System.out.println(" 输入一个字符"); //System.in.read(); //利用read()语句暂缓程序运行只过滤一个字符 char cc; cc=(char)System.in.read(); //从键盘输入 read 得到一个字符,是 int 型 System.out.print( cc); int c=System.in.read(); //从键盘输入

相关文档