public static void write(){
String text="abcdefg";
ByteArrayInputStream bais=new ByteArrayInputStream(text.getBytes());
int n=bais.read();
while(n!=-1){
System.out.print((char)n);
n=bais.read();
}
try {
if(bais!=null){
bais.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}我的疑惑如下: 整个Java代码不都是在内存中运行的吗?那个整个Java程序不就是内存的一部分?为什么还会有内存流(用来传递程序和内存之间的数据)这一说? 请大神解释一下,在此谢过啦! 注:和什么堆内存、栈内存等没有关系,真的是不理解内存与程序的关系。
1 回答
阿旭_
TA贡献217条经验 获得超353个赞
内存(数据断电消失:内存条、cpucatch……),外存(数据断电不消失:外存器、U盘、硬盘、光盘)
显示器要显示内容,通常需要先把展示的数据从外存(比如硬盘)读到内存中去,仅仅读是不够的,还要有一定的逻辑去计算显示的数据,负责计算的是cpu。
简言之,玩游戏也好、打开eclipse也好,只要是运行的,都只能在内存中运行(断电就消失了)。所以在打开Eclipse编写代码的时候建议要经常Ctrl+S(保存正在编写的代码到磁盘/硬盘中去)。这样电脑突然断电了,再打开ecipse也能看到相应编辑的文件。
==============
一个应用程序通常称做一个进程,进程也是在内存中的,内存要拿外存(磁盘的数据时)这个过程称做 内存与外存的交互。在java里叫做IO文件流读写操作。
IO流读写(内存流读:比如向D盘中打开一个名为abc.txt的文件,并将内容读到内存中去)、IO流写(内存流写:比如向硬盘D盘保存一个名为abc.txt的文件,并在这个文件中写数据"哈哈哈哈"并保存)。
整个过程D盘的abc.txt这个文件是不会因为突然断电而消失的,当你再打开电脑去D盘找,依然能看到abc.txt文件。
但这个操作过程确是由java中的InputStream相关类文件实现的。
添加回答
举报
0/150
提交
取消