看书看到JAVA中流与文件这一章,感觉很多地方看不大明白也不好说具体是哪儿,总之就是概念蛮模糊,不太理解.
比如看到一句System.in , System.out是流而不是读取器和写入器(reader and writer).看着就有点晕.到底流对象应该怎么去理解它,写入器跟读取器呢又?谁能通俗点地讲一下,讲得容易理解一点.
比如看到一句System.in , System.out是流而不是读取器和写入器(reader and writer).看着就有点晕.到底流对象应该怎么去理解它,写入器跟读取器呢又?谁能通俗点地讲一下,讲得容易理解一点.
楼主【kittaaron】截止到2008-07-29 18:26:42的历史汇总数据(不包括此帖):
发帖的总数量:5 发帖的总分数:170 每贴平均分数:34
回帖的总数量:89 得分贴总数量:29 回帖的得分率:32%
结贴的总数量:2 结贴的总分数:60
无满意结贴数:0 无满意结贴分:0
未结的帖子数:3 未结的总分数:110
结贴的百分比:40.00 % 结分的百分比:35.29 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
楼主该结一些帖子了
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=kittaaron
字符是通过编码以后,转换成二进制来传输的。
流,其实就是二进制信息,一般它只能从前向后来处理,就如同水只由高向地处流动一样。
如果,我们处理的数据,要求有回滚的功能,一般是通过创建缓冲区来实现。就像水流,可以创建湖泊,在湖泊里可以找到先流过的水。我们知道,处理二进制信息,编程会有些困难,所以,Java的JDK提供了内容丰富的类,可以便于处理这些二进制信息。InputStreamReader 专用于处理字符的。当你要处理数据全是字符的时候,可以使用这个类。因为,你可以发现,他的方法都是面向字符来处理的。其他的类,你可以上网上google一下或baidu一下,CSDN里,曾经有过好几次讲述这些类用法的帖子。楼主可以去看看。
我该回家吃饭了。
{
public static void main(String []args)
{
Scanner scanner=new Scanner(System.in);
int[] intArray = new int[5];
for (int i=0; i<5; i++){
int m = i+1;
System.out.println("请输入第"+ m +"个数:");
intArray[i] = scanner.nextInt();
}
System.out.print("数组内的Int型数有:");
for (int j=0; j<5; j++){
System.out.print(intArray[j] + " ");
}
}
}
结果:请输入第1个数:
1
请输入第2个数:
2
请输入第3个数:
3
请输入第4个数:
4
请输入第5个数:
5
数组内的Int型数有:1 2 3 4 5
然后看其他的类与他们的层次关系
流简单理解为水流,只不过程序里流的不时水了,是数据,比如文件数据。
Reader和Writer是需要用流对象来构造的。
//文件输入流
FileInputStream fis = new FileInputStream("data.dat");
//读取器
Reader reader = new InputStreamReader(fis);
System.in 是读字节的流,属于低级流
InputStreamReader 是读字符的流,也是低级流
BufferedReader 是读字符串的流,属于高级流
我们用高级流封装低级流来达到我们想要的功能:
new BufferedReader(new InputStreamReader(System.in));
你记住以内存为原点就好理解了
东西读入内存就是输入流,如键盘
东西从内存写到记录存储输出流
import java.io.*;
public class Testfile
{
public static void main(String[] args)
{
try
{
//fi是输入流,fo是输出流
FileInputStream fi=new FileInputStream("fi.txt");
FileOutputStream fo=new FileOutputStream("fo.txt");
//read表示内存空间.输入流(fi)写入内存空间
int read=fi.read();
while(read!=-1)
{
//内存空间数据写入输出流(fo)
fo.write(read);
//输入流(fi)写入内存空间
read=fi.read();
}
fi.close();
fo.close();
}
catch (IOException e)
{
System.out.println(e);
}
}
}