java题 任选一个文件,使用文件输入流,将其数据读取出来,并打印到控制台!! 代码简单能够有注释

java题 任选一个文件,使用文件输入流,将其数据读取出来,并打印到控制台!! 代码简单能够有注释,第1张

FileInputStream file=new FileInputStream(//这里写文件路径和名字);

BufferedReader reader=new BufferedReader(new InputStreamReader(file));//这里得到流

while((String b=readerreaderLine())!=null){//这里都文件一行一行的都

systemoutpriteln(b);//输出到控制台

}

求采纳 纯手打

先把标准输入读到一个String对象,

Scanner scanner = new Scanner(Systemin);

String str = scannernextLine();

然后new一个StringBufferInputStream对象,

StringBufferInputStream buffer = new StringBufferInputStream(str);

最后用这个对象作为DataInputStream的InputStream参数输入,

DataInputStream dis = new DataInputStream(buffer);

然后做你的 *** 作就行了。。。

第二个问题:

1、gets(str);

是从缓冲区中读取字符串,然后保存到数组str中直到遇到回车符,换行符不作为字符串的内容,读取的换行符会转换为NULL值,由此标志程序的结束。

2、cingetline(charline,int size,char ='"n')是读入一行字符,第二个参数是本次读取的最大字符个数,第三个参数是分隔字符,作为读取一行结束的标志,默认是\n。

3、cinget()第一个用法,是读入一个字符。 cinget()第二个用法,也是输入一行(同cingetline()),但是区别就是,不输出分隔符

补充一下:

cingetline() 与 cin>>str 的一个不同是,前者输入一行,行中可以包含空格,后者却以空格或回车作为字串结束,不包含空格。

补充:get() 和getline()的异同

1)相同点:

要获取一行的输入,标准流类的成员函数getline(),get()都有三个参数,比如getline(charline,int size,char ='\n')。其中第一个参数指向存储结果字符的缓冲区指针,第二个表示缓冲区大小(本次读取的最大字符个数,不能够超过其限度),第三个表示知道什么时候停止读输入的终止符(读取一行结束的标志)。终止符有一个经常用到的缺省值"\n"。两个函数遇到输入终止符时,都把零储存在结果缓冲区里。

2)不同点:

1一般来讲,get()一次读入一个字符,getline()一次读入一行字符

2在处理字符串时,get()遇到输入流的分隔符时就停止,而不从输入流中提取分隔符。比如用cinget(myarray1,20,''); 处理字符串11112222,碰到就停止。cout<<myarray1;会输出1111。然后再调用cinget(ch1),cout<<ch1;输出的还是这个分隔符。getline()与其相反,它从输入流中提取分隔符,但仍没有把它储存在结果缓冲区里。如果用cingetline(myarray2,20,'');处理上面同样的字符串11112222,碰到停止。 cout<<myarray2;会输出1111。然后再调用cinget(ch2),cout<<ch2;输出的是分隔符后面的2。

3)代码演示:

#include <iostream>

#include <iomanip>

using namespace std;

void main()

{

char myarray1[20],myarray2[20];

cinget(myarray1,20,'');

cout<<myarray1;

char ch1;

cinget(ch1);

cout<<ch1;

cingetline(myarray2,20,'');

cout<<myarray2;

cinget(ch1);

cout<<ch1;

}

4)read 函数和 write函数

最近开始从事搜索引擎的工作,所以又重新开始了c/c++的旅程,时隔4年

不得不复习一下c/c++其中的内容,以下内容有网上别的朋友发表的,也有我自己总结的

1 read

#include

ssize_t read(int filedes, void buf, size_t nbytes);

返回值:读取到的字节数;0(读到 EOF);-1(出错)

read 函数从 filedes 指定的已打开文件中读取 nbytes 字节到 buf 中。以下几种情况会导致读取到的字节数小于 nbytes :

A 读取普通文件时,读到文件末尾还不够 nbytes 字节。例如:如果文件只有 30 字节,而我们想读取 100

字节,那么实际读到的只有 30 字节,read 函数返回 30 。此时再使用 read 函数作用于这个文件会导致 read 返回 0 。

B 从终端设备(terminal device)读取时,一般情况下每次只能读取一行。

C 从网络读取时,网络缓存可能导致读取的字节数小于 nbytes 字节。

D 读取 pipe 或者 FIFO 时,pipe 或 FIFO 里的字节数可能小于 nbytes 。

E 从面向记录(record-oriented)的设备读取时,某些面向记录的设备(如磁带)每次最多只能返回一个记录。

F 在读取了部分数据时被信号中断。

读 *** 作始于 cfo 。在成功返回之前,cfo 增加,增量为实际读取到的字节数。

2 write

#include

ssize_t write(int filedes, const void buf, size_t nbytes);

返回值:写入文件的字节数(成功);-1(出错)

write 函数向 filedes 中写入 nbytes 字节数据,数据来源为 buf 。返回值一般总是等于 nbytes,否则就是出错了。常见的出错原因是磁盘空间满了或者超过了文件大小限制。

对于普通文件,写 *** 作始于 cfo 。如果打开文件时使用了 O_APPEND,则每次写 *** 作都将数据写入文件末尾。成功写入后,cfo 增加,增量为实际写入的字节数。

From : antigloss

以上就是关于java题 任选一个文件,使用文件输入流,将其数据读取出来,并打印到控制台!! 代码简单能够有注释全部的内容,包括:java题 任选一个文件,使用文件输入流,将其数据读取出来,并打印到控制台!! 代码简单能够有注释、使用DataInputStream 如何获得输入流的长度、c++,读入流问题,(关于移动读取指针的问题)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9759728.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存