凡绍录---输入输出流
流式输入输出与文件处理

System类中提供了如下方法重新设置标准流对象: • static void setIn(InputStream in) :重新定义标准输入流 • static void setErr(PrintStream err) :重新定义标准错误输出 • static void setOut(PrintStream out) :重新定义标准输出
InputStreamReader InputStream 将面向字节的输入流类Reader的主要子类及说明(续)
FileReader
文件对象或字符串表 文件作为输入源 示的文件名
PipedReader StringReader
PipedWriter的对象 字符串
与另一输出管道相连, 读取另一管道写入的 字符
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) { } }}
public static void main(String args[]) { int number=0; final int size=Integer.parseInt(args[1]);
byte[] b = new byte[size];
try { FileInputStream infile = new
输入输出流

输入输出流的相关简介系别:计算机技术与信息管理系班级:09软件技术姓名:徐燕学号:09207745目录一.Java输入输出流详解 (3)1.什么是流: (3)2、流的分类 (3)2.1字节流 (3)2.2.字符流 (4)2.3.对象流 (4)4.字节流与字符流的区别: (4)二.流的层次结构 (5)1.InputStream类 (6)2.OutputStream类 (7)3.FileInputStream类 (7)4.FileOutputStream类 (8)5.File类 (8)6.从一个流构造另一个流 (9)7.BufferInputStream和bufferOutputStream (10)8.printstream (11)三.字符流的读取和写入 (11)1.BufferInputStream和bufferOutputStream (14)2.printstream (15)四.java的i/o输入输出类怎么分出是输入流还是输出流? (15)五.java中什么时候用输入流,什么时候用输出流? (16)六.JA V A输出输入流函数注意事项 (16)1. 处理概述: (17)2. 字节流: (17)2.1输入流: (17)2.2输出流: (18)3、字符流: (18)3.1. 字符流处理概述 (18)3.2. 字符流处理 (19)3.3流处理中的其它方法: (20)七.总结 (21)一.Java输入输出流详解stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。
在Java的IO中,所有的stream(包括Inputstream和Out stream)都包括两种类型:1.什么是流:流是一个抽象的概念。
当Java程序需要从数据源读取数据时,会开启一个到数据源的流。
数据源可以是文件,内存或者网络等。
同样,当程序需要输出数据到目的地时也一样会开启一个流,数据目的地也可以是文件、内存或者网络等。
C语言中KeilC51库函数大全

Keil C51库函数参考C51强大功能及其高效率的重要体现之一在于其丰富的可直接调用的库函数,多使用库函数使程序代码简单,结构清晰,易于调试和维护,下面介绍C51的库函数系统。
第一节本征库函数(intrinsic routin e s)和非本征证库函数C51提供的本征函数是指编译时直接将固定的代码插入当前行,而不是用AC ALL和L CALL语句来实现,这样就大大提供了函数访问的效率,而非本征函数则必须由A CALL及LCALL调用。
C51的本征库函数只有9个,数目虽少,但都非常有用,列如下:_crol_,_cror_:将char型变量循环向左(右)移动指定位数后返回_iror_,_irol_:将int型变量循环向左(右)移动指定位数后返回_lrol_,_lror_:将long型变量循环向左(右)移动指定位数后返回_nop_:相当于插入N OP_testb it_:相当于JBC bitvar测试该位变量并跳转同时清除。
_chkfl oat_:测试并返回源点数状态。
使用时,必须包含#incluc le <intrin s.h>一行。
如不说明,下面谈到的库函数均指非本征库函数。
第二节几类重要库函数1. 专用寄存器i nclud e文件例如8031、8051均为REG51.h其中包括了所有8051的SFR及其位定义,一般系统都必须包括本文件。
2. 绝对地址in clude文件abs acc.h该文件中实际只定义了几个宏,以确定各存储空间的绝对地址。
3. 动态内存分配函数,位于stdl ib.h中4. 缓冲区处理函数位于“string.h”中其中包括拷贝比较移动等函数如:memccp y memchr memcmp memcpy memmov e memset这样很方便地对缓冲区进行处理。
凡绍录---输入输出流

第十二周实验安排统计英文单词。
实验要求:使用RandomAccessFile流统计一篇英文中的单词,要求如下:(1)一共出现了多少个单词;(2)有多少个互不相同的单词;(3)给出每个单词出现的频率,并将这些单词按频率大小顺序显示在一个TextArea中。
程序界面如下图所示:提示:1. 界面及文件处理可以参考12章的内容2. 字数的统计方法可以参考9.3节的StringTokenizer类代码如下:public class shiyan {public static void main(String args[]){Wbk win=new Wbk();win.setTitle("使用文本对话框读写文件.");win.setVisible(true);}}import javax.swing.*;import java.awt.event.*;import java.awt.*;import java.io.*;import java.util.*;public class Wbk extends JFrame implements ActionListener{JFileChooser files;JMenuBar menubar;JMenu menu;JMenuItem save,open,census;JTextField text;JTextArea text1;BufferedWriter out;BufferedReader in;FileWriter filewriter;FileReader filereader;Wbk(){init();setBounds(100,100,500,500);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}void init(){menubar=new JMenuBar();menu=new JMenu("文件");save=new JMenuItem("保存文件");open=new JMenuItem("打开文件");census=new JMenuItem("统计字数");save.addActionListener(this);open.addActionListener(this);census.addActionListener(this);menu.add(save);menu.add(open);menu.add(census);menubar.add(menu);setJMenuBar(menubar);text1=new JTextArea(20,20);add(new JScrollPane(text1),BorderLayout.CENTER);text=new JTextField(30);add(new JScrollPane(text),BorderLayout.SOUTH);files=new JFileChooser();}public void actionPerformed(ActionEvent e){if(e.getSource()==save){int state=files.showSaveDialog(this);if(state==JFileChooser.APPROVE_OPTION){try{File wj=files.getCurrentDirectory();String name=files.getSelectedFile().getName();File wj1=new File(wj,name);filewriter=new FileWriter(wj1);out=new BufferedWriter(filewriter);out.write(text1.getText());out.close();filewriter.close();}catch(IOException exp){}}}else if(e.getSource()==open){int state=files.showOpenDialog(this);if(state==JFileChooser.APPROVE_OPTION){text1.setText(null);try{File wj=files.getCurrentDirectory();String name=files.getSelectedFile().getName();File wj1=new File(wj,name);filereader=new FileReader(wj1);in=new BufferedReader(filereader);String s=null;while((s=in.readLine())!=null){text1.append(s+"\n");}in.close();filereader.close();}catch(IOException exp){}}}else if(e.getSource()==census){String wz=text1.getText();StringTokenizer zs=new StringTokenizer(wz," ,.!?");int zishu=zs.countTokens();text.setText("共有"+zishu+"个单词");HashMap<String, Integer> tt = new HashMap<String, Integer>();String ss="[\\s\\p{Punct}]+";String[] danci=wz.split(ss);int[] ts= new int[danci.length];for (int i = 0; i < danci.length; i++) {if (tt.containsKey(danci[i])) {continue;}else {ts[i]=0;for (int j = i+1; j < danci.length; j++) {ts[i]=1;if (danci[i].equals(danci[j])) {ts[i]++;}}}tt.put(danci[i], ts[i]);}Integer[] dcshu=new Integer[tt.size()];String[] string = tt.keySet().toArray(new String[0]);for (int i=0;i<tt.size();i++){dcshu[i]=tt.get(string[i]);}for(int m=0;m<tt.size();m++){for(int j = m+1;j<tt.size();j++){int a;String b;if(dcshu[j]<tt.get(string[m])){a= dcshu[m];b=string[m];dcshu[m] = dcshu[j];string[m] = string[j];dcshu[j]=a;string[j]=b;}}}text1.append("\n共有"+string.length+"个不相同的单词"+"\n单词按频率大小顺序为:");for(int i=0;i<string.length;i++)text1.append("\n"+string[i]+" "+dcshu[i]+"个");}}}结构截图:。
ASP中输入输出流之完成研究

从中可以看出,这些信息中有关于用户代理和用户连接的细节 ( 如缺省的语言 ),也有能够接受的文件或应用程序的类型列表, 阿布力米提 ・ 艾西丁 这些都是 MM 类型 的, IE 在后面将会 见到更 多。 浏览器能够接受几种 irsf fc 文件类型。“ O 标准 的文件类型, ( 和田师专计算机教育科学系 新疆和田 8 80 ) 4 00 图像文件及多种 Mcoot fie 如 ts/tl tx/et exhm 和 ettx 没有列在其中。 文件列表中 木 表示可向 浏览器发回任何类型 的文件 ,由浏览器解释或通过一个插件 [ 摘 要] 浏 器( 其 用 代 和W 服 器 闻 请 与 在 览 或 他 户 理) e 务 之 , 求 响 b pu-n 一 应中发生的信息交流可以通过 AP中的两个 内置对象来进行访问和管理, S 这两个 (lgi)应用程序来进行解释。 co i : 目 oke 条 包含 的 co i 存放在客户端的计算机上 , oke 并仅对 对象称为 Rqet Rsos 对象。Rqet Rsos 这两个对象是 AP eus 和 epne eus 和 epne S 所 提供的内置对象中最常用的两个。在 AP S 页中所要进行的工作几乎都要访问这两 该域有效。假如请求是点击链接的结果,而不是在浏览器的地址栏 R , eee : 个对象,使用这两个对象的方式将影响页面的效率及可靠性。当然,它们的主要 直接输入 UL 则 Rfrr 条目被显示出来,它包含了链接页面的
维普资讯
2 0 年 07
《 和田师范专科学校学报》( 汉文综合版)
J1 07 2 卷第六期 , 总第 5 期 u20 第 7 . O
A P中输入输出流之完成研究 S
H s :2 2 2 0 2 8 6 o t 1 . 5 .3 , 7
C语言--file文件指针及操作

C语⾔--file⽂件指针及操作⽂件⽂件的基本概念 所谓“⽂件”是指⼀组相关数据的有序集合。
这个数据集有⼀个名称,叫做⽂件名。
实际上在前⾯的各章中我们已经多次使⽤了⽂件,例如源程序⽂件、⽬标⽂件、可执⾏⽂件、库⽂件 (头⽂件)等。
⽂件通常是驻留在外部介质(如磁盘等)上的,在使⽤时才调⼊内存中来。
从不同的⾓度可对⽂件作不同的分类。
从⽤户的⾓度看,⽂件可分为普通⽂件和设备⽂件两种。
普通⽂件是指驻留在磁盘或其它外部介质上的⼀个有序数据集,可以是源⽂件、⽬标⽂件、可执⾏程序;也可以是⼀组待输⼊处理的原始数据,或者是⼀组输出的结果。
对于源⽂件、⽬标⽂件、可执⾏程序可以称作程序⽂件,对输⼊输出数据可称作数据⽂件。
设备⽂件是指与主机相联的各种外部设备,如显⽰器、打印机、键盘等。
在操作系统中,把外部设备也看作是⼀个⽂件来进⾏管理,把它们的输⼊、输出等同于对磁盘⽂件的读和写。
通常把显⽰器定义为标准输出⽂件,⼀般情况下在屏幕上显⽰有关信息就是向标准输出⽂件输出。
如前⾯经常使⽤的printf,putchar 函数就是这类输出。
键盘通常被指定标准的输⼊⽂件,从键盘上输⼊就意味着从标准输⼊⽂件上输⼊数据。
scanf,getchar函数就属于这类输⼊。
从⽂件编码的⽅式来看,⽂件可分为ASCII码⽂件和⼆进制码⽂件两种。
ASCII⽂件也称为⽂本⽂件,这种⽂件在磁盘中存放时每个字符对应⼀个字节,⽤于存放对应的ASCII码。
例如,数5678的存储形式为:ASC码: 00110101 00110110 00110111 00111000 ↓ ↓ ↓ ↓⼗进制码: 5 6 7 8 共占⽤4个字节。
ASCII码⽂件可在屏幕上按字符显⽰,例如源程序⽂件就是ASCII⽂件,⽤DOS命令TYPE可显⽰⽂件的内容。
由于是按字符显⽰,因此能读懂⽂件内容。
⼆进制⽂件是按⼆进制的编码⽅式来存放⽂件的。
例如,数5678的存储形式为: 00010110 00101110只占⼆个字节。
详解C++中赋值和输入输出语句的用法

详解C++中赋值和输⼊输出语句的⽤法C++赋值语句讲解C++的赋值语句具有其他⾼级语⾔的赋值语句的功能。
但不同的是,C++中的赋值号“=“是⼀个运算符,可以写成a=b=c=d;⽽在其他⼤多数语⾔中赋值号不是运算符,上⾯的写法是不合法的。
关于赋值表达式与赋值语句的概念。
在C++中,赋值表达式可以包括在其他表达式之中,例如:if((a=b)>0) cout<<"a>0"<<endl;按语法规定if后⾯的( )内是⼀个条件。
现在在x的位置上换上⼀个赋值表达式“a=b“,其作⽤是,先进⾏赋值运算(将b的值赋给a),然后判断a是否⼤于0,如⼤于0,执⾏cout<<"a>0"<<endl;。
在if语句中的“a=b“不是赋值语句⽽是赋值表达式,这样写是合法的。
不能写成if((a=b;)>0) cout<<"a>0"<<endl;因为在if的条件中不能包含赋值语句。
C++把赋值语句和赋值表达式区别开来,增加了表达式的种类,能实现其他语⾔中难以实现的功能。
C++输⼊cout与输出cin输⼊和输出并不是C++语⾔中的正式组成成分。
C和C++本⾝都没有为输⼊和输出提供专门的语句结构。
输⼊输出不是由C++本⾝定义的,⽽是在编译系统提供的I/O库中定义的。
C++的输出和输⼊是⽤“流”(stream)的⽅式实现的。
有关流对象cin、cout和流运算符的定义等信息是存放在C++的输⼊输出流库中的,因此如果在程序中使⽤cin、cout和流运算符,就必须使⽤预处理命令把头⽂件stream包含到本⽂件中:#include <iostream>尽管cin和cout不是C++本⾝提供的语句,但是在不致混淆的情况下,为了叙述⽅便,常常把由cin和流提取运算符“>>”实现输⼊的语句称为输⼊语句或cin语句,把由cout和流插⼊运算符“<<”实现输出的语句称为输出语句或cout语句。
第7章 流式输入输出

第7章
流式输入输出
第7章 流式输入输出
学习目标
java流式输入/输出原理
java基本I/O流类型 字节流和字符流 节点流和处理流 Java命令行参数和系统属性 标准I/O,文件I/O
第7章 流式输入输出
Java I/O基本原理
为进行数据的输入/输出操作,Java中把不同的输入/输出
Memory Array
Memory String
Pipe
PipedReader
PipedWritຫໍສະໝຸດ rPipedInputStream
PipedOutputStream
第7章 流式输入输出
节点流应用举例--文件复制
import java.io.*; public class Test7_1 { public static void main(String[] args) { try { FileReader input = new FileReader("Test7_1.java"); FileWriter output = new FileWriter("temp.txt"); int read = input.read(); while ( read != -1 ) { output.write(read); read = input.read(); } input.close(); output.close(); } catch (IOException e) { System.out.println(e); } } }
第7章 流式输入输出
I/O 流的链接
第7章 流式输入输出
处理流(Processing Streams)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十二周实验安排
统计英文单词。
实验要求:
使用RandomAccessFile流统计一篇英文中的单词,要求如下:
(1)一共出现了多少个单词;
(2)有多少个互不相同的单词;
(3)给出每个单词出现的频率,并将这些单词按频率大小顺序显示在一个TextArea中。
程序界面如下图所示:
提示:1. 界面及文件处理可以参考12章的内容
2. 字数的统计方法可以参考9.3节的StringTokenizer类
代码如下:
public class shiyan {
public static void main(String args[]){
Wbk win=new Wbk();
win.setTitle("使用文本对话框读写文件.");
win.setV isible(true);
}
}
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import java.util.*;
public class Wbk extends JFrame implements ActionListener{
JFileChooser files;
JMenuBar menubar;
JMenu menu;
JMenuItem save,open,census;
JTextField text;
JTextArea text1;
BufferedWriter out;
BufferedReader in;
FileWriter filewriter;
FileReader filereader;
Wbk(){
init();
setBounds(100,100,500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(){
menubar=new JMenuBar();
menu=new JMenu("文件");
save=new JMenuItem("保存文件");
open=new JMenuItem("打开文件");
census=new JMenuItem("统计字数");
save.addActionListener(this);
open.addActionListener(this);
census.addActionListener(this);
menu.add(save);
menu.add(open);
menu.add(census);
menubar.add(menu);
setJMenuBar(menubar);
text1=new JTextArea(20,20);
add(new JScrollPane(text1),BorderLayout.CENTER);
text=new JTextField(30);
add(new JScrollPane(text),BorderLayout.SOUTH);
files=new JFileChooser();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==save){
int state=files.showSaveDialog(this);
if(state==JFileChooser.APPROVE_OPTION){
try{
File wj=files.getCurrentDirectory();
String name=files.getSelectedFile().getName();
File wj1=new File(wj,name);
filewriter=new FileWriter(wj1);
out=new BufferedWriter(filewriter);
out.write(text1.getText());
out.close();
filewriter.close();
}
catch(IOException exp){}
}
}
else if(e.getSource()==open){
int state=files.showOpenDialog(this);
if(state==JFileChooser.APPROVE_OPTION){
text1.setText(null);
try{
File wj=files.getCurrentDirectory();
String name=files.getSelectedFile().getName();
File wj1=new File(wj,name);
filereader=new FileReader(wj1);
in=new BufferedReader(filereader);
String s=null;
while((s=in.readLine())!=null){
text1.append(s+"\n");
}
in.close();
filereader.close();
}
catch(IOException exp){}
}
}
else if(e.getSource()==census){
String wz=text1.getText();
StringTokenizer zs=new StringTokenizer(wz," ,.!?");
int zishu=zs.countTokens();
text.setText("共有"+zishu+"个单词");
HashMap<String, Integer> tt = new HashMap<String, Integer>();
String ss="[\\s\\p{Punct}]+";
String[] danci=wz.split(ss);
int[] ts= new int[danci.length];
for (int i = 0; i < danci.length; i++) {
if (tt.containsKey(danci[i])) {
continue;
}
else {
ts[i]=0;
for (int j = i+1; j < danci.length; j++) {
ts[i]=1;
if (danci[i].equals(danci[j])) {
ts[i]++;
}
}
}
tt.put(danci[i], ts[i]);
}
Integer[] dcshu=new Integer[tt.size()];
String[] string = tt.keySet().toArray(new String[0]);
for (int i=0;i<tt.size();i++)
{
dcshu[i]=tt.get(string[i]);
}
for(int m=0;m<tt.size();m++){
for(int j = m+1;j<tt.size();j++){
int a;
String b;
if(dcshu[j]<tt.get(string[m])){
a= dcshu[m];
b=string[m];
dcshu[m] = dcshu[j];
string[m] = string[j];
dcshu[j]=a;
string[j]=b;
}
}
}
text1.append("\n共有"+string.length+"个不相同的单词"+"\n单词按频率大小顺序为:");
for(int i=0;i<string.length;i++)
text1.append("\n"+string[i]+" "+dcshu[i]+"个");}
}
}
结构截图:。