控制台有两个关系紧密的功能,也就是屏幕缓冲区和控制台窗口;
        屏幕缓冲区:文本实际上是从控制台拥有的流进行读取和写入的,但看起来像是在控制台拥有的一个区域中进行读取和写入,这个区域就
称为屏幕缓冲区;它是控制台的一个属性,以由行和列组成的矩形网格形式来进行组织,其中每个网格交叉位置(字符单元格)都可以包含一
个字符。而且每个字符都有自己的前景色,其中每个字符单元格都有自己的背景色;
        控制台窗口:它的本质就是一窗体,它也以行和列的形式进行组织,其大小与屏幕缓冲区相同或者更小,该窗口可以进行移动以查看屏幕
缓冲区的不同区域。其中如果屏幕缓冲区比控制台窗口大,控制台会自动显示滚动条,以使控制台窗口可以在屏幕缓冲区上重新定位;
       屏幕缓冲区可以通过控制台窗口的矩形区域查看;
       光标:指指示屏幕缓冲区中当前正在读取或写入文本的位置(它可以同过CursorLeft和CursorTop来获取其相对于屏幕左上角的列数[即x坐
标]和行数[即y坐标]);
       注:CursorLeft和CursorTop(int类型的值)的数值是随着光标的位置的改变而不断发生变化的;其中方法:public static void
SetCursorPosition(int left,int top)用来设置光标的位置;(如果用console[控制台]来模拟计算器时,其显示栏的数据的显示需要用到这
个方法);
        Console类是一个静态的类,故其方法也都为静态的
下面我们来了解下console类的方法和属性:
         已重载:Beep():通过控制台扬声器播放提示音
                          Beep(Int32,Int32):通过控制台扬声器播放具有指定频率和持续时间的提示音(其中声音持续时间的单位是ms[毫秒])
        void Clear():清除控制台缓冲区和相应的控制台窗口的显示信息;
       已重载:MoveBufferArea(Int32,Int32,Int32,Int32,Int32,Int32):将屏幕缓冲区的指定原区域复制到指定的目标区域;
                        MoveBufferArea(Int32, Int32, Int32, Int32, Int32, Int32,Char,ConsoleColor, ConsoleColor) :将屏幕缓冲区的指定原区域复制到指定的目标区域;(方法中的参数列表不同)
     已重载:OpenstandardError():获取标准错误流;
                       OpenStandardError(Int32):获取设置为指定缓冲区大小的标准错误流
      int Read():从标准输入流读取下一个字符
    已重载:ReadKey():获取用户按下的下一个字符或功能键,按下的键显示在控制台窗口中
            ReadKey(Boolean):获取用户按下的下一个字符或功能键,按下的可以悬着显示在控制台窗口中,也可以不显示;
     string ReadLine():从标准输入流读取下一行字符;
     void ResetColor():将控制台的前景色和背景色设置为默认值
     void SetBufferSize(int width,int height):将屏幕缓冲区的高度和宽度设置为指定值
     void SetCursorPosition(int left,int top):设置光标的位置
     void SetWindowPosition(int left,int top):设置控制台窗口相对于屏幕缓冲区的位置
     void SetWindowSize(int width,int height):将控制台窗口的高度和宽度设置为指定值
    已重载:var Write(var value):将指定值的文本表示形式写入标准输出流
    已重载:var WriteLine(var value):将指定的数据(后跟当前行终止符)写入标准输出流
属性:
    BackgroundColor:获取或设置控制台的背景色;
    BufferHeight:获取或设置缓冲区的高度;
    BufferWidth:获取或设置缓冲区的快读;
    CapsLock:获取一个值,该值指示CapsLock键盘切换键是打开的还是关闭的
    CursorLeft:获取或设置光标的在缓冲区的列位置;
    CursorTop:获取或设置光标在缓冲区中的行位置;
    CursorVisible:获取或设置一个值,用以指示光标是否可见;
    Error:获取标准错误输出流;
    ForegroundColor:获取或设置控制台的前景色;
    In:获取标准输入流;
    InputEncoding:获取或设置控制台用于度曲输入的编码;
    KeyAvailable:获取一个值,该值指示按键操作在输入流中是否可用;
    LargestWindowHeight:根据当前字体和屏幕分辨率获取控制台窗口可能具有的最大行数;
    LargestWindowWidth:根据当前字体和屏幕分辨率获取控制台窗口可能具有的最大列数;
    NumberLock:获取一个值,该值指示NumLock键盘切换键是打开的还是关闭的;
    Out:获取标准输出流
    OutputEncoding:获取或设置控制台用于写入输出的编码;
    Title:获取或设置要显示在控制台标题栏中的标题;
    TreatControlAsInput:获取或设置一个值,该值指示是将修改键Control和控制台键C的组合视为普通输入,还是视为由操作系统处理的中
断;
    WindowHeight:获取或设置控制台窗口区域的高度;
    WindowLeft:获取或设置控制台窗口区域的最左边相对于屏幕缓冲区的位置;
    WindowTop:获取或设置控制台窗口区域的最顶部相对于屏幕缓冲区的位置;
    WindowWidth:获取或设置控制台窗口的宽度;
事件
    CancelKeyPress:在同时按下修改键Control和控制台键C时发生;

转载于:https://blog.51cto.com/1888229/352059

Console类浅谈相关推荐

  1. java中string类_Java中String类浅谈

    1)String对象的初始化 由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下:      String s = "abc&qu ...

  2. java接口与类相同不同_浅谈java的接口和C++虚类的相同和不同之处

    C++虚类相当于java中的抽象类,与接口的不同之处是: 1.一个子类只能继承一个抽象类(虚类),但能实现多个接口 2.一个抽象类可以有构造方法,接口没有构造方法 3.一个抽象类中的方法不一定是抽象方 ...

  3. python类中方法的执行顺序-浅谈Python的方法解析顺序(MRO)

    方法解析顺序, Method Resolution Order 从一段代码开始 考虑下面的情况: class A(object): def foo(self): print('A.foo()') cl ...

  4. 浅谈String和StringBuffer类:

    浅谈String和StringBuffer类: 如果有错误的地方,请多多提出! 内存分配: String(固定字符串): String类对象一旦创建,内容无法修改. String a="3& ...

  5. 浅谈UML类图中类之间的5种关系

    什么是UML类图? 类图显示了一组类.接口.协作以及他们之间的关系.在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统.类加上他们之间的关系就构成了类图,类图中还可以包 ...

  6. 浅谈Java锁,与JUC的常用类,集合安全类,常用辅助类,读写锁,阻塞队列,线程池,ForkJoin,volatile,单例模式不安全,CAS,各种锁

    浅谈JUC的常用类 JUC就是java.util.concurrent-包下的类 回顾多线程 Java默认有几个线程? 2 个 mian.GC Java 真的可以开启线程吗? 开不了,点击源码得知:本 ...

  7. 浅谈深浅拷贝问题(这里只针对拷贝构造函数和赋值运算符重载)和简易srting类模拟实现

    浅谈深浅拷贝问题(这里只针对拷贝构造函数和赋值运算符重载)和简易srting类模拟实现 文章目录 浅谈深浅拷贝问题(这里只针对拷贝构造函数和赋值运算符重载)和简易srting类模拟实现 一.什么是浅拷 ...

  8. 浅谈Spring IOC和DI及Spring工厂类

    浅谈Spring IOC和DI及Spring的工厂类 文章目录 浅谈Spring IOC和DI及Spring的工厂类 一. IOC 1.什么是IOC 2.为什么使用IOC 传统开发模式的弊端 3. 使 ...

  9. python类构造方法缺省_浅谈python3 构造函数和析构函数

    要点: 1.魔法方法,被__双下划线所包围 在适当的时候自动被调用 2.在创建一个对象的时候,一定会调用构造函数 3. del析构函数,在del a对象的时候,并一定会调用该析构函数 只有当该对象的引 ...

最新文章

  1. Velocity文档(3)
  2. redis面试问题(二)
  3. 这是我看过最好的Java编程入门视频教程!
  4. 使用js技术使字体闪烁
  5. 使用Maven构建Dubbo服务的可运行jar包
  6. TCP的定时器系列 — 保活定时器(有图有代码有真相!!!)
  7. cmd查看端口占用情况 和 关闭被占用的端口
  8. hacker基础教程
  9. Leetcode每日一题:116.populating-next-right-pointers-in-each-node(填充每个节点的下一个右侧节点指针)
  10. Python遍历文件夹获取文件名并写入excel
  11. 【转载】Android 工具-adb原理
  12. 多校赛 Barareh on Fire
  13. python机器学习之数据集(查看数据,划分训练集、测试集)
  14. Windows10无法修改图标字体和菜单栏字体问题 —— regedit注册表修改
  15. java在pdf文件中插入字_怎么在PDF文件中添加文字文本框
  16. 采访了 10 位身价过亿的 CEO,我终于看懂了有钱人的“奋斗”
  17. REVIT建模步骤中:绘制形状不能拾取两条参照平面的交点解决方法
  18. 中国软件行业待遇问题
  19. 面试题:请你说说P2P贷款app的业务流程是怎样的?
  20. [日推荐]『穷游智能攻略』国外游最佳拍档

热门文章

  1. 【星球知识卡片】图像风格化与翻译都有哪些核心技术,如何对其长期深入学习...
  2. java 注解 long转date_Spring data jpa时间注解
  3. openresty开发系列28--openresty中操作mysql
  4. vue render
  5. git 常用操作命令(Common operation)
  6. [九省联考2018]IIIDX
  7. Functions that return a function
  8. 20172329 2017-2018-2 《程序设计与数据结构》实验四报告
  9. Vue是如何渲染页面的,渲染过程以及原理代码
  10. python里的“__all__ ”作用