java第九章输入输出文件练习
第九章 Java输入输出
第九章 Java输入/输出
int read()
从输入流中读一个字节,形成一个0~255之间的整数 返回(是一个抽象方法中。
int read(byte b[], int off, int len)
从输入流中读取长度为len的数据,写入数组b中从索引 off开始的位置,并返回读取得字节数。
第九章 Java输入/输出
9.1 9.2 9.3 9.4 I/O概述 I/O字节流 I/O字符流 随机访问文件
第九章 Java输入/输出 9.1 I/O概述
大部分程序都需要输入/输出处理,比如从键盘读 取数据、向屏幕中输出数据、从文件中读或者 向文件中写数据、在一个网络连接上进行读写 操作等。 在Java中,把这些不同类型的输入、输出抽象为流 (Stream),而其中输入或输出的数据则称为 数据流(Data Stream),用统一的接口来表示, 从而使程序设计简单明了。
对于这三个方法,若返回-1,表明流结束。
第九章 Java输入/输出
2. 字节流——OutputStream
write(int b)
将一个整数输出到流中(只输出低位字节,抽象)
write(byte b[])
将字节数组中的数据输出到流中
write(byte b[], int off, int len)
第九章 Java输入/输出
使用缓冲流支持的mark 和reset机制
public String readLine( BufferedInputStream in) throws IOException { StringBuffer sb = new StringBuffer(); int c = in.read(); …… return sb.toString(); } while (c != -1) { if (c == „\n‟) break; if (c == „\r‟) { in.mark(1); if (in.read() != „\n‟) in.reset(); break; } sb.append((char)c); c = in.read(); }
java输入输出流PPT课件
间(时间是从1970年午夜至文件最后修改时刻的毫秒 数
2.目录 (1)创建目录
File对象调用方法:public boolean mkdir()创建一 个目录,如果创建成功返回true,否则返回false(如 果该目录已经存在将返回false)。 (2)列出目录中的文件
public String[] list( obj) 该方法用字符串形式 返回目录下的指定类型的所有文件。
public File [] listFiles( obj) 该方法用File对 象返回目录下的指定类型所有文件。
是一个接口,该接口有一个方法:
public boolean accept( name);
File("C:/1000"); acceptCondition=new ("java"); File []=dir.listFiles(acceptCondition); for(int i=0;i< )
{ System.out.printf("\n文件名称:%s,长度:%d", [i].getName(),[i].length());
}
}。
} boolean boo=[0].delete(); if(boo) {
System.out.printf("\n文件:%s被删除:",[0].getName()); }
• import java.io.*; • import java.util.*; • import com.bruceeckel.util.*; • public class DirList3 { • public static void main(final String[] args) {
Java语言程序设计第9章_输入输出和文件操作
DataOutputStream PrintStream
ObjectOutputStream PipedOutputStream
输出字节流类层次结构图
9.1.2 字节流与字符流
Reader
BufferedReader LineNumberReade r
CharArrayReader FilterReader PushbackReader
【例9-12】 【例9-13】 【例9-14】
9.5 文本扫描器(Scanner)
▪ Scanner类常用的构造方法
⑴ public Scanner(String source)
构造一个新的Scanner对象,从指定的字符串数据源获取数据。 ⑵ public Scanner(File source) throws FileNotFoundException 构造一个新的Scanner对象,从File对象指定的文件数据源获取数 据。
▪ 在对流进行读写操作时,使用一块称作缓冲区的内存区域, 输出的数据先存入缓冲区,当缓冲区满了或调用缓冲流的 flush()方法后,才完成对输出设备或文件的实际输出;
▪ 输入数据时,从输入设备或文件每次读入尽可能多的数据到 缓冲区,程序需要的数据从缓冲区取得,当缓冲区变空时再 读入一个数据块。
▪ 缓冲流包括BufferedInputStream和 BufferedOutputStream以及BufferedReader和 BufferedWriter。
▪ 它们都是处理流。
9.2.2 缓冲流的使用
▪ 1.BufferedInputStream和BufferedOutputStream的构 造方法
▪ 2.BufferedReader和BufferedWriter的构造方法
第9章 JAVA输入输出与文件处理
9.1 文件的处理
separator:String类型的类变量,其值就是文件路径的 类型的类变量, 类型的类变量 分隔符。对于Windows操作系统而言,就是“\\”。因 操作系统而言, 分隔符。对于 操作系统而言 就是“ 。 是跨平台的语言, 为Java是跨平台的语言,所以在拼接文件路径的时最 是跨平台的语言 好使用这个变量作为路径分隔符。 好使用这个变量作为路径分隔符。 File(String path):构造方法,参数为文件或文件夹的 构造方法, 构造方法 全路径。 全路径。 isFile( )和isDirectory( )方法:两个方法的返回值都是 方法: 和 方法 Boolean,用来判断一个 对象是文件还是文件夹。 ,用来判断一个File对象是文件还是文件夹。 对象是文件还是文件夹 boolean exists( ):判断是否已经存在文件路径中的那个 判断是否已经存在文件路径中的那个 文件。 文件。
9.1 文件的处理
创建和删除文件
在接下来的程序中,会创建C:\javaeasy\testingfolder目 在接下来的程序中,会创建C:\javaeasy\testingfolder目 C: 文件。 录,然后在里面创建一个名为testingfile.txt文件。如果目录已 然后在里面创建一个名为 文件 经存在,则将不会再次创建;如果文件已经存在, 经存在,则将不会再次创建;如果文件已经存在,程序会将这 个文件删除,并重新创建这个文件。 个文件删除,并重新创建这个文件。 这个例程可以看做是一个创建文件夹和文件的标准流程。 这个例程可以看做是一个创建文件夹和文件的标准流程。 点击例程 程序如下: 程序如下:
9.1 文件的处理
import java.io.File; //引入使用的类 引入使用的类 import java.io.IOException; public class CreateFileAndFolder { //例程类 例程类
[java入门学习]第 9 章 Java输入输出操作
第九章 Java输入输出操作9.1 Java 输入输出流所有的程序语言都提及与本机文件系统交互的方式;Java也不例外。
我们将看看Java 是怎样处理标准文件输入输出的(包括stdin,stout,stderr)。
当你在网络上开发小程序时,你必须注意直接文件输入输出是不安全因素的关键。
大多数用户设置他们的浏览器,可让你自由的访问他们的文件系统,但有的不让你访问。
当然,如果你开发你内部的应用程序,你也许需要直接访问文件。
标准输入输出Unix的用户,或其他基于命令行系统的用户(如DOS),都知道标准输入输出的含义。
标准输入文件是键盘,标准输出文件是你的终端屏幕。
标准错误输出文件也指向屏幕,如果有必要,它也可以指向另一个文件以便和正常输出区分。
系统类Java通过系统类达到访问标准输入输出的功能。
上面提到的三个文件在这个系统类中实现:Stdin System.in作为InputStream类的一个实例来实现stdin,你可以使用read()和skip(long n)两个成员函数。
read()让你从输入中读一个字节,skip(long n)让你在输入中跳过n个字节。
Stout System.out作为PrintStream来实现stdout,你可以使用print()和println()两个成员函数。
这两个函数支持Java的任意基本类型作为参数。
Stderr System.err同stdout一样实现stderr。
象System.out一样,你可以访问PrintStream 成员函数。
9.2 标准输入输出例子import java.io.* class myCat{public void main(String args[]) throws IOException{int b;int count = 0;while ((b = System.in.read()) != -1){count++;System.out.print((char)b);}System.out.println(); //blank line System.err.println("counted"+count+"total bytes.");}}9.3 普通输入输出类除了基本的键盘输入和屏幕输出外,我们还需要联系文件的输入输出。
java习题及答案第9章 习题参考答案
第9章习题解答1.与输入/输出有关的流类有哪些?答:与输入/输出有关的流类主要有InputStream、OutputStream和Reader、Writer类及其子类。
除此以外,与流有关的类还有File类、FileDescriptor类、StreamTokenizer类和RandomAccessFile类。
2.字节流与字符流之间有哪些区别?答:字节流是面向字节的流,流中的数据以8位字节为单位进行读写,是抽象类InputStream和OutputStream的子类,通常用于读写二进制数据,如图像和声音。
字符流是面向字符的流,流中的数据以16位字符(Unicode字符)为单位进行读写,是抽象类Reader和Writer的子类,通常用于字符数据的处理。
3.什么是节点流?什么是处理流或过滤流?分别在什么场合使用?答:一个流有两个端点。
一个端点是程序;另一个端点可以是特定的外部设备(如键盘、显示器、已连接的网络等)和磁盘文件,甚至是一块内存区域(统称为节点),也可以是一个已存在流的目的端。
流的一端是程序,另一端是节点的流,称为节点流。
节点流是一种最基本的流。
以其它已经存在的流作为一个端点的流,称为处理流。
处理流又称过滤流,是对已存在的节点流或其它处理流的进一步处理。
对节点流中的数据只能按字节或字符读写。
当读写的数据不是单个字节或字符,而是一个数据块或字符串等时,就要使用处理流或过滤流。
4.标准流对象有哪些?它们是哪个类的对象?答:标准流对象有3个,它们是:System.in、System.out和System.err。
System.in 是InputStream类对象,System.out和System.err是PrintStream类对象。
5.顺序读写与随机读写的特点分别是什么?答:所谓顺序读写是指在读写流中的数据时只能按顺序进行。
换言之,在读取流中的第n个字节或字符时,必须已经读取了流中的前n-1个字节或字符;同样,在写入了流中n-1个字节或字符后,才能写入第n个字节或字符。
第9讲 java的输入输出(一)
17
9.3.1 File类
2. File(String path, String filename) 参数:path:文件所在目录的路径名 filename:文件名
File aFile=new File(“d:/temp”, “cc.txt”)
18
9.3.1 File类
3. File(File dir, String filename) 参数:dir:目录文件对象 filename:文件名
Reader Class的继承关系:
9
9.2
Java用于输入输出流的类
Writer Class的继承关系:
10
预定义的标准流(字节流)
System.out是标准的输出流,默认情况 下,它是一个控制台。 System.in是标准输入流,默认情况下, 它连接的另一端指的是键盘。 System.err指的是标准错误流,它默认是 控制台。
3
9.1
2. 输出流
流概念
通过打开一个连接到目标的输出流,程序可以 向外部目标顺序写数据。
4
9.2
Java用于输入输出流的类
按所读写的数据类型分两类:
字节流类(Byte Streams) 字节流类用 于向字节流读写8位二进制的字节。 字符流类(Character Streams) 字符 流类用于向字符流读写16位二进制字符。
5
9.2
Java用于输入输出流的类
java.io中的基本流类:
说明:它们是抽象类,不能直接创建对象。
6
9.2
Java用于输入输出流的类
InputStream Class的继承关系:
7
9.2
Java用于输入输出流的类
第九章java输入输出流
OutputStream类
OutputStream类是所有输出数据流的父类,所以它也被实现成 抽象类,定义了所有输出数据流都具有的共同特性.
close( )关闭RandomAccessFile流,并释放资源。 getFilePointer()返回文件指针位置。 length()返回文件长度 read()从文件中读取一个字节的数据 readInt()从文件中读取一个int值(4个字节) readLine()读取一行 seek(long pos)定位参数pos在文件中指定的位置
OutputStream类的method
public void close( ) throws IOException 关闭与输出数据流的连系 public void flush( )throws IOException 将写入的数据确实送到接受数据的装置去.因为写入的数据通 常会先放到高速缓存(cache)里面,等到数量达到某一程度 时,用这个方法将强迫数据写进去. public void write(byte[ ] b)throws IOException 将数组b中的数据写入输出数据流
Writer类的method
public abstract void close()throws IOException 关闭与输出数据流的连接,但关闭之前会先调用一次flush
method.如果程序结束前没有调用这个method.则写入的数据 可能会流失调. public abstract void flush()throws IOEception 将写入的数据确实送到收据的装置去. public void write(char[] cbuf) 将cbuf数组中的字符一一 写入输出数据流
JAVA语言输入输出部分选择题40道
1.在Java中,下列哪个类可以用于读取文本文件的字符?o A. FileInputStreamo B. FileReadero C. BufferedReadero D. InputStreamReader答案: B解析: FileReader是Java中用于读取文本文件字符的类,它建立于文件的基础上。
2.C语言中,使用fscanf函数从文件读取数据,其返回值表示什么?o A. 成功读取的字符数o B. 文件中的总字符数o C. 成功读取的数据项的数量o D. 文件的大小答案: C解析: fscanf函数返回成功读取和转换的数据项的数量。
3.下列哪个类用于在Java中创建输出文件流?o A. FileWritero B. FileOutputStreamo C. BufferedWritero D. OutputStreamWriter答案: B解析: FileOutputStream用于在Java中创建输出文件流。
4.假设你在C语言中使用fopen函数打开一个文件,但文件不存在于指定路径,函数将返回什么?o A. 正常文件指针o B. NULLo C. 错误代码o D. 空字符串答案: B解析: 如果文件不存在或无法打开,fopen将返回NULL。
5.在Java中,FileInputStream和FileOutputStream类是用于处理哪种类型的文件的?o A. 二进制文件o B. 字符文件o C. 文本文件o D. 图像文件答案: A解析: FileInputStream和FileOutputStream是用于读写二进制文件的。
6.C语言中的fwrite函数用于将数据写入文件。
假设你有一个结构体,你如何保证其完全写入文件?o A. 使用fwrite函数并指定结构体的大小o B. 使用fprintf函数o C. 使用fputc函数o D. 使用fputs函数答案: A解析: fwrite函数可以用于写入任意类型的数据,通过指定数据的大小确保结构体完全写入。
java中的输入输出流PPT课件
3
3
9.1 文件
多流的读写与文件有关。
Java使用File类创建的对象来获取文件本身的一些 信息,如文件所在的目录、文件的长度、文件读写权限 等,文件对象并不涉及对文件的读写操作。
创建一个File对象的构造方法有3个:
); directoryPath,String ); f, String );
其中是文件名字,directoryPath是文件的路径,f 是一个目录。
使用 )创建文件时,该文件被认为0/9/27
4
4
1.文件的属性
使用File类的下列方法可以获取文件本身的一些信息: ◆ public String getName() 获取文件的名字。 ◆ public boolean canRead() 判断文件是否是可读的。 ◆ public boolean canWrite() 判断文件是否可被写入。 ◆ public boolean exits() 判断文件是否存在。 ◆ public long length() 获取文件的长度(单位是字节)。 ◆ public String getAbsolutePath() 获取文件的绝对路径。 ◆ public String getParent() 获取文件的父目录。 ◆ public boolean isFile() 判断文件是否是一个正常文件,而不是目录。 ◆ public boolean isDirectroy() 判断文件是否是一个目录。 ◆ public boolean isHidden() 判断文件是否是隐藏文件。 ◆ public long lastModified() 获取文件最后修改的时间(时间是从1970 年午夜至文件最后修改时刻的毫秒数。
2020/9/27
8
自考JAVA语言程序设计(一)课后习题答案和源代码(第九章)
第九章2.一个文本,一个按钮。
在文本区中输入数据,点击按钮,将文本内容输出到文件。
文件通过文件保存对话框制定。
程序运行结果:保存文件的源文件: SaveFile.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;/***9.2一个文本,一个按钮。
<BR>*在文本区中输入数据,点击按钮,将文本内容输出到文件。
<BR>*文件通过文件保存对话框制定。
<BR>*@author黎明你好*/public class SaveFile extends JFrame implements ActionListener{private static final long serialVersionUID = 1L;// 序列化时为了保持版本的兼容性private JFileChooser fileChooser;// 文件选择对话框private JPanel northPanel;// 布局用的private JButton saveFileButton;// 保存按钮private JLabel label;// 用来显示文件的绝对路径private JTextArea textArea;// 文本框public SaveFile(){super("第九章,第二题- 保存文件");label = new JLabel(" ");fileChooser = new JFileChooser();northPanel = new JPanel();saveFileButton = new JButton("保存到文件");textArea = new JTextArea();textArea.setLineWrap(true);saveFileButton.addActionListener(this);northPanel.add(saveFileButton);this.add(northPanel, BorderLayout.NORTH);this.add(new JScrollPane(textArea), BorderLayout.CENTER);this.add(label, BorderLayout.SOUTH);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setBounds(50, 50, 500, 500);this.setVisible(true);this.validate();}public void actionPerformed(ActionEvent e) // 监听器方法{if (e.getSource() == saveFileButton){int message = fileChooser.showSaveDialog(this);if (message == JFileChooser.APPROVE_OPTION){File file = fileChooser.getSelectedFile();label.setText("保存到:" + file.getAbsolutePath());// 在label上显示这个文件的绝对路径this.setTitle(file.getName());// 设置JFrame的title为文件的名字saveFile(file);}else{label.setText("没有文件被选中");}}}/***把文本区上的内容保存到指定文件上*@param f-保存到的文件对象*/public void saveFile(File f){try{FileWriter file = new FileWriter(f);BufferedWriter out = new BufferedWriter(file);out.write(textArea.getText(), 0, textArea.getText().length());out.close();}catch( Exception e ){label.setText("写文件发生错误");}}public static void main(String[] args){new SaveFile();}}3.在一个文件中,每行存的是整数,各行整数个数不等,要求读这个文件,然后计算每行整数的和,并存到另一个文件中。
java9
3、基本数据类型数据的读写问题
类DataOutputStream实现各种类型数据的输出处理,它 实现了DataOutput接口 writeByte(int) writeBytes(String) writeBoolean(boolean) writeChars(String) writeInt(int) writeLong() writeFloat(float) writeDouble(double) writeUTF(String)等。
第9章 流式输入输出与文件处理
9.1 9.2 9.3 9.4 9.5 输入输出基本概念 面向字节的输入输出 面向字符的输入输出 文件处理 对象串行化
9.1.1 I/O设备与文件
1. I/O设备分类 存储设备 存储设备包括硬盘、软盘、光盘等, 输入/输出设备 输入设备有键盘、鼠标、扫描仪等 输出设备有显示器、打印机、绘图仪等。 2. 文件的分类 根据数据的组织方式分为 • 文本文件----存放的是ASCII码(或其它编码)表示的字符 • 二进制文件----具有特定结构的数据。
数据….
x.Dat文件 FileOutputStream DataOutputStream
import java.io.*; public class OutSisterPrime { public static void main(String[] arguments) { try { FileInputStream file = new FileInputStream("x.dat"); DataInputStream in=new DataInputStream(file); try { while(true) { int n1=in.readInt(); int n2=in.readInt(); System.out.println(n1+","+n2); } } catch (EOFException e) { in.close();} } catch (IOException e) { } }}
java输入输出练习题及答案
Java输入输出练习题及答案//******************************************************************** /*李白:春思燕草如碧丝,秦桑低绿枝。
当君怀归日,是妾断肠时。
春风不相识,何事入罗帏?*/public class l1 {public static void main(String[] args) {System.out.print(" 李白:春思\n\n");System.out.println("燕草如碧丝,秦桑低绿枝");System.out.println("当君怀归日,是妾断肠时");System.out.println("春风不相识,何事入罗帏");System.out.print("\n\n");}}//******************************************************************** /*********************/public class l2 {public static void main(String[] args) {System.out.println(" *");System.out.println(" *****");System.out.println(" *******");System.out.println(" *****");System.out.println(" *");System.out.print("\n\n");}}//******************************************************************** /*日一二三四五六1 2 3 45 6 7 8 9 10 1112 13 14 15 16 17 18*/public class l3 {public static void main(String[] args) {System.out.print("\t日\t一\t二\t三\t四\t五\t六\n\t\t\t\t1\t2\t3\t4\n\t5\t6\t7\t8\t9\t10\t11\n\t12\t13\t14\t15\t16\t17\t18\n\n\n");}}//******************************************************************** /***************************************人事管理系统1、添加用户2、查询用户3、退出系统***************************************/public class l4 {public static void main(String[] args) {System.out.print("******************************************\n\t人事管理系统\n\t1、添加用户\n\t2、查询用户\n\t2、退出系统\n******************************************\n\n");}}//******************************************************************** /*·曾造·程过·康仲伯·李敦诗*/public class l5 {public static void main(String[] args) {System.out.print("姓名:\n\b曾造\n\b陈过\n\b康仲伯\n\b李敦诗\n\n");}}//********************************************************************/*** ** ** * * * * * * **/public class l6 {public static void main(String[] args) {System.out.println(" *");System.out.println(" * *");System.out.println(" * *");System.out.println(" *********");System.out.print("\n\n");}}//******************************************************************** /*IT富豪榜排名序号名字身家1 李彦宏200亿2 马化腾150亿3 马云100亿4 陈天桥60亿*/public class l7 {public static void main(String[] args) {System.out.print("\tIT富豪榜排名\n序号\t名字\t身家\n1\t李彦宏\t200亿\n2\t马化腾\t200亿\n3\t马云\t150亿\n4\t陈天桥\t60亿");}}//******************************************************************** //定义3个整形变量,分别是3,4,5,计算他们的和public class l1{public static void main(String[] args) {int ai=3,bi=4,ci=5;System.out.println("a+b+c="+(ai+bi+ci));System.out.println();}}//******************************************************************** //输入打狗的包子数,获得屎的个数,注意:2个包子一坨屎public class l1{public static void main(String[] args) {int bao=21;System.out.println("屎的个数是"+(bao/2));System.out.println(); }}//******************************************************************** //定义2个字符串型变量,分别值为“hello”和“world”,并将他们进行拼接,打印输出public class l1{public static void main(String[] args) {String he="hello",wo="world";System.out.println(he+wo);System.out.println();}}//******************************************************************** //定义一个变量保存正方形的边长,计算此正方形的周长,及面积public class l1{public static void main(String[] args) {int bian=5;System.out.println("正方形的周长="+(4*bian)+",正方形的面积"+bian*bian);System.out.println();}}//******************************************************************** /*定义一个变量记录天数=10,计算10天共有多少小时。
Java程序设计-9-基本输入输出处理(1)
9.1.2输入和输出流的进一步分类 9.1.2输入和输出流的进一步分类
功能分类(部分) 表9-1 功能分类(部分)
文件 缓冲 打印 内存 FileReader,FileWriter;FileInputStream, FileReader,FileWriter;FileInputStream,FileOutputStream BufferedReader, BufferedReader,BufferedWriter BufferedInputStream, BufferedInputStream,BufferedOutputStream PrintWriter, PrintWriter,PrintStream CharArrayReader,CharArrayWriter; CharArrayReader,CharArrayWriter; ByteArrayInputStream, ByteArrayInputStream,ByteArrayOutputStream StringReader,StringWriter; StringReader,StringWriter;StringBufferInputStream InputStreamReader,OutputStreamWriter InputStreamReader, PipedReader,PipedWriter;PipedInputStream, PipedReader,PipedWriter;PipedInputStream,PipedOutputStream SequenceInputStream ObjectInputStream, ObjectInputStream,ObjectOutputStream DataInputStream, DataInputStream,DataOutputStream LineNumberReader, LineNumberReader,LineNumberInputStream PushbackReader, PushbackReader,PushbackInputStream FilterReader,FilterWriter;FilterInputStream, FilterReader,FilterWriter;FilterInputStream, FilterOutputStream
IO输入输出练习(JAVA)
1、输入格式11 510 20630import java.util.Scanner;public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);while(in.hasNextInt()){int a = in.nextInt();int b = in.nextInt();System.out.println(a + b);}}}2、输入格式221 510 20630import java.util.*;public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);int t = in.nextInt();for(int i = 0; i < t; i++){int a = in.nextInt();int b = in.nextInt();System.out.println(a + b);}}}3、输入格式31 510 200 0630import java.util.Scanner;public class Main{public static void main(String args[]){ Scanner sc=new Scanner(System.in); while(sc.hasNext()){int m=sc.nextInt();int n=sc.nextInt();if(m!=0 && n!=0){System.out.println(m+n);}}}}4、输入格式44 1 2 3 45 1 2 3 4 51015import java.util.Scanner;public class Main{public static void main(String[] args){ Scanner sc = new Scanner(System.in);while(sc.hasNext()){int m=sc.nextInt();if(m==0){break;}int i=0,sum=0;while(i<m){sum += sc.nextInt();i++;}System.out.println(sum);}}}5、输入格式524 1 2 3 45 1 2 3 4 51015import java.util.Scanner;public class Main{public static void main(String[] args){ Scanner sc = new Scanner(System.in); int t=sc.nextInt();int k=0;while(k<t){int m=sc.nextInt();int i=0,sum=0;while(i<m){sum += sc.nextInt();i++;}System.out.println(sum);k++;}}}6、输入格式64 1 2 3 45 1 2 3 4 51015import java.util.Scanner;public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);while(sc.hasNext()){int m=sc.nextInt();int i=0,sum=0;while(i<m){sum += sc.nextInt();i++;}System.out.println(sum);}}}7、输入格式71 2 34 50 0 0 0 069import java.util.Scanner;public class Main{public static void main(String[] args){Scanner input = new Scanner(System.in);while (input.hasNext()) {String[] s = input.nextLine().split(" "); int sum = 0;for (int i = 0; i < s.length; i++) { sum += Integer.parseInt(s[i]); }System.out.println(sum);}}}8、输入格式85c d a bb ea bbcd eimport java.util.*;public class Main {public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();String[] s = new String[n];for(int i = 0; i < n; i ++){s[i] = sc.next();}Arrays.sort(s);for(int i = 0;i < n; i ++){if(i != n - 1){System.out.print(s[i] + " ");}else{System.out.print(s[i]);}}}}9、输入格式9a c bbf ddddnowcodera bb cdddd fnowcoderimport java.util.Arrays;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(sc.hasNextLine()){String[] str = sc.nextLine().split(" ");Arrays.sort(str);int n = str.length;for(int i = 0;i < n;++i){ //在牛客上编译竟然提示格式错误;if(i == n-1){System.out.println(str[i]);}else{System.out.print(str[i] + " ");}}}}}10、输入格式10a,c,bbf,ddddnowcodera,bb,cdddd,fnowcoderimport java.util.*;public class Main{public static void main(String[] args){Scanner input = new Scanner(System.in);while(input.hasNext()){String[] ss = input.nextLine().split(","); Arrays.sort(ss);String ans = "";for(int i = 0; i < ss.length; ++i){if(i == ss.length - 1){ans += ss[i];break;}ans += ss[i] + ",";}System.out.println(ans);}}}。
Java-输入输出(含部分答案)
Java输入输出知识点:1、文件和流的操作,理解字节流和字符流的概念2、异常处理的概念,自定义异常类一、选择题1、如果一个程序段中有多个catch,则程序会按如下哪种情况执行? ( )A)找到合适的例外类型后继续执行后面的catchB)找到每个符合条件的catch都执行一次C)找到合适的例外类型后就不再执行后面的catchD)对每个catch都执行一次2、程序员将可能发生异常的代码放在()块中,后面紧跟着一个或多个()块。
A) catch、try B) try、catchC) try、exception D) exception、try3、在Java语言中,在程序运行时会自动检查数组的下标是否越界,如果越界,会抛掷下面的异常( )A) SQLException B) IOExceptionC) ArrayIndexOutOfBoundsExcetion D) SecurityManager4、在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) Exception1C) 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 2C) Test 3 D) Test 47、以下哪一项不是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) BufferedOutputStreamC) FileInputStream D) FileOuterStreamE) File9、要从文件" file.dat"文件中读出第10个字节到变量C中,下列哪个方法适合? ( )A) FileInputStream in=new FileInputStream("file.dat");in.skip(9); intc=in.read();B) FileInputStream in=new FileInputStream("file.dat"); in.skip(10); intc=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. IOExceptionB. InterruptExceptionC. NullPointerExceptionD. DataFormatException11、设有如下方法: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 1B. condition 2C. condition 3D. finally12、设有如下代码: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 1B. Location 2C. Location 3D. Location 413、设有如下代码: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"); 以下行中哪些会产生空指针异常。
Java输入输出处理
经被后面所讨论的读者和作者所取代。
PipedInputStream和PipedOutputStream
管道流用来在线程间进行通信。一个线程的 PipedInputStream对象从另一个线程的 PipedOutputStream对象读取输入。要使管道流有用, 必须有一个输入方和一个输出方。
4. void close()
当你完成写操作后,就关闭输出流。如果你有一个流 所组成的栈,就关闭栈顶部的流。这个关闭操作会关 闭其余的流。
5. void flush()
有时一个输出流在积累了若干次之后才进行真正的写操 作。flush( )方法允许你强制执行写操作。
下面举例:
FileInputStream和FileOutputStream 这些类是结点流,而且正如这个名字所暗示的那样,
字节流输入类
InputStream
FileInputStream ByteArrayInputStream
FilterInputStream PipedInputStream
ObjectInputStream
SequenceInputStream AudioInputStream
BufferedInputStream CipherInputStream
需要声明:在最底层,所有的输入/输出都是 字节形式的。基于字符的流只为处理字符提供 方便有效的方法。
Java流的划分
字节流类
处理字节的输入和输出提供了方便的方法
字符流类
为字符的输入和输出处理提供了方便
读写数据的单位不同 最主要的是Read() 和Write() 方法 每个流的特点
java第九章输入输出文件练习
第9章I/O系统一、选择题1、下列数据流中,属于输入流的是(b )A. 从内存流向硬盘的数据流B. 从键盘流向内存的数据流C. 从键盘流向显示器的数据流D. 从网络流向显示器的数据流2、Java语言中提供输入输出流的包是(d )A. java.sqlB. java.utilC. java.mathD. java.io3、下列流中哪一个使用了缓冲区技术?( a )A. BufferedOutputStreamB. FileInputStreamC. DataOutputStreamD. FileReader4、下列说法,错误的是( 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.inB. 打开一个文件时不可能产生IOExceptionC. 使用File对象乐意判断一个文件是否存在D. 使用File对象可以判断一个目录是否存在二、填空题1、按照流的处理数据的基本单位,I/O流包括输入输入流和输出流。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第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 类或
者writer 类的子类,它们都继承了write() 方法用于写数据。
4、DataoutputStream对象dos的当前位置写入一个保存在变量d中的浮点数的方法是dos.writerDouble 。
三、编程题
1、编写程序,利用FileReader类和FileWriter类,以及缓冲流实现将D盘下的文件in .txt复制到E盘myfile文件夹下。
1.package IOtest;
2.
3.import java.io.FileNotFoundException;
4.import java.io.FileReader;
5.import java.io.FileWriter;
6.import java.io.IOException;
7.
8.public class TxtCopy {
9.
10. /**
11. * 将C:\\的myHeart.txt copy 到 D:\\下
12. *
13. * 首先创建Reader读取数据数据的读取流对象。
14. *
15. * @throws FileNotFoundException
16. */
17. public static void main(String[] args) {
18. FileReader fr = null;
19. FileWriter fw = null;
20. try {
21. fr = new FileReader("C:\\my.txt");
22. fw = new FileWriter("D:\\you.txt");
23. //读一个字符,写一个字符方法
24.// int ch = 0;
25.//
26.// while ((ch = fr.read()) != -1) {
27.// fw.write(ch);
28.// }
29. char []buf = new char[1024];
30. int len = 0;
31. //读一个数组大小,写一个数组大小方法。
32. while((len = fr.read(buf)) != -1){
33. fw.write(buf, 0, len);
34. }
35.
36. } catch (Exception e) {
37. System.out.println(e.toString());
38. } finally {
39. if (fr != null)
40. try {
41. fr.close();
42. } catch (Exception e2) {
43. throw new RuntimeException("关闭失败!");
44. }
45. if (fw != null)
46. try {
47. fw.close();
48. } catch (IOException e) {
49. throw new RuntimeException("关闭失败!");
50. }
51. }
52. }
53.}。