博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java流(Stream)/文件(File)/IO
阅读量:2386 次
发布时间:2019-05-10

本文共 1922 字,大约阅读时间需要 6 分钟。

Java 流(Stream)、文件(File)和IO

Java.io包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。

字符集也称编码

一个流可以理解为一个数据的序列

输入流表示从一个源读取数据,输出流表示向一个目标写数据。Java为I/O提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。

 

读取控制台输入

Java的控制台输入由System.in完成

读取文件

如前所述,一个流被定义为一个数据序列。输入流用于从源读取数据,输出流用于向目标写数据。

 

流是一组有序的数据序列(顺序很重要),按操作类型:输入和输出流(input/output);

抽象类InputStream是所有字节(占8位空间)输入流的父类

抽象类Reader是所有字符输入流的父类

抽象类OutputStream是所有字节输出流的父类

抽象类Writer是所有字符输出流的父类

 

字符的编码依赖于编码方式,不是唯一的;字节序列<编码方式>串;字符在机器的内存中表示为:unicode-16编码格式;字节编码与字符的转换:String类String(byte[] b, int start, int len, String codeName), InputStreamReader int read()  返回-1表示流结束,否则是字符(需要强制转换)。

 

键盘输入:System.in,字节输入

InputStreamReader,字符输入

BufferedReader整行字符的输入(串)

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

String s = bs.readLine();System.out.println(s);

 

键盘输入原理

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

InputStream ins = new FileInputStream(“d:/a.txt”);//指明路径

文本文件(人可识别的字符,行的序列,不能随机访问<行的长度不确定>

二进制文件(高度结构化,机器识别,字节的序列,可随机访问

 

二进制文件的读写

直接操作字节FileInputStream  FileOutputStream

与平台无关的读写DataInputStream  DataOutputStream

与编码有关,先把串转换为byte[]

 

Java Scanner类:通过Scanner类来获取用户的输入

next()与nextLine()区别

next()

1、一定要读取到有效字符后才可以结束输入。

2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。

3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。

next()不能得到带有空格的字符串

nextLine()

1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。

2、可以获得空白。

 

用键盘输入一个数:(从控制台获取数据)

使用Scanner类

Scanner s1= new Scanner(System.in);

a = s1.nextInt();

//nextInt(),将输入信息的下一个标记扫描为一个int。如果下一个标记不能转换为有效的 int 值,则此方法将抛出 InputMismatchException。

Scanner s2= new Scanner(System.in);

String s = s2.nextLine();  //nextLine()

使用IO数据流

InputStreamReader reader = new InputStreamReader(System.in);

BufferedReader input = new BufferedReader(reader);

//BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

n = Integer.parseInt(input.readLine());//readLine(),转换为itn型

//InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。

//它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。

你可能感兴趣的文章
Windows Server2008上安装VS2008出错及解决办法
查看>>
打开word2010每次都要配置进度的解决办法
查看>>
略论并行处理系统的日志设计
查看>>
开发人员应具备的产品设计意识
查看>>
MSComDlg.CommonDialog服务器不能创建对象错误的解决
查看>>
ArcGIS二次开发之读取遥感图像像素值的做法
查看>>
netcdf源码在windows上的编译
查看>>
慎用VC 6.0
查看>>
游戏杆编程心得
查看>>
周例会的作用
查看>>
字符集研究之多字节字符集和unicode字符集
查看>>
字符集研究之不同字符集的转换方式
查看>>
一个应用程序无法启动错误的解决过程
查看>>
除虫记——有关WindowsAPI文件查找函数的一次压力测试
查看>>
Incredibuild导入key的方式
查看>>
跨平台C++开源代码的两种常用编译方式
查看>>
Eclipse的搜索技巧
查看>>
centos常用命令二
查看>>
通过修改kong属性解决不能获取外网域名的问题
查看>>
Eclipse带命令行参数调试
查看>>