⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 streamtest.java

📁 java培训专题
💻 JAVA
字号:
package io;
import java.io.*;
public class StreamTest {

	public static void main(String[] args) throws Exception{
//------------------------(1)----------------------------------
/*      int data;
		while((data=System.in.read())!=-1){//从标准输入流(即键盘)读取数据到标准输出流(即显示器).
			System.out.write(data);
		}
*/
//------------------------(/1)----------------------------------
//------------------------(2)-----------------------------------
/*
		FileOutputStream fos=new FileOutputStream("1.txt");//创建指向当前目录下"1.txt"文件的输出流
		fos.write("www.swu.edu.cn/index.jsp   我的学校西南大学网址".getBytes());//将字符串组装成字节数组
		fos.close();//关闭输出流.
		
		FileInputStream fis=new FileInputStream("1.txt");//创建指向当前目录下"1.txt"文件的输入流
		byte[] buf=new byte[100];
		int len=fis.read(buf);//将文件中的数据读入buf字节数组中,并返回实际读取的字节长度.
		System.out.println(new String(buf,0,len));//构造一个新的字符串,是由字节数组buf的下标为0到len-1元素构成.
		fis.close();//关闭输入流
*/
//------------------------(/2)----------------------------------		
//------------------------(3)----------------------------------
/*
		FileOutputStream fos=new FileOutputStream("1.txt");
		BufferedOutputStream bos=new BufferedOutputStream(fos);//将文件输出流写入到缓冲输出流中。
		bos.write("www.swu.edu.cn/index.jsp   我的学校西南大学网址".getBytes());
		//bos.flush();//将缓冲区的数据写入到硬盘.
		bos.close();//只需关闭尾端的流即可.关闭流时,写入缓冲区的数据也被自动写入硬盘.
		
		FileInputStream fis=new FileInputStream("1.txt");
		BufferedInputStream bis=new BufferedInputStream(fis);//将文件输入流写入到缓冲输入流中。

		byte[] buf=new byte[100];
		int len=bis.read(buf);
		System.out.println(new String(buf,0,len));
		bis.close();
		
		/*注意:OutputStream 和 InputStream是节点流,而BufferedOutputStream
		 * 和BufferedInputStream是过滤流,而过滤流必须以已经存在的节点流为源点。
		 * 又因为FileOutputStream 和 FileInputStream分别是OutputStream 
		 * 和 InputStream 的派生类,故也是节点流。BufferedOutputStream将节点流写入到
		 * 缓冲区,以提高流的传输效率。
		*/
//------------------------(/3)----------------------------------
//------------------------(4)----------------------------------
		FileOutputStream fos=new FileOutputStream("1.txt");
		BufferedOutputStream bos=new BufferedOutputStream(fos);//将文件输出流写入到缓冲输出流中。
		DataOutputStream dos=new DataOutputStream(bos);/*将缓冲输出流写入到能读取基本数据类型的DataOutputStream类型的流中。
		这样dos流就具备了缓冲功能和读取基本数据类型功能。当然也可以直接这样DataOutputStream dos=new DataOutputStream(fos);定义
		若用这种方法,则dos流只具备读取基本数据类型功能而不具备缓冲功能。*/
		//dos.write("www.swu.edu.cn/index.jsp   我的学校西南大学网址".getBytes());
		//bos.flush();//将缓冲区的数据写入到硬盘.
		//bos.close();//只需关闭尾端的流即可.关闭流时,写入缓冲区的数据也被自动写入硬盘.
		//DataOutputStream流能够写入八种基本数据类型。
		int i=89;
		float f=3.1415926f;
		short s=12345;
		byte b='B';
		double d=4.1415926;
		boolean bl=false;
		char c='C';
		long l=31415926l;
		dos.writeFloat(f);
		dos.writeInt(i);
		dos.writeShort(s);
		dos.writeDouble(d);
		dos.writeChar(c);
		dos.writeBoolean(bl);
		dos.writeLong(l);
		dos.writeByte(b);
		dos.close();//只需关闭尾端的流即可,bos流和fos流将自动关闭,同时保存在缓冲区的数据被写入到硬盘中。
		
		FileInputStream fis=new FileInputStream("1.txt");
		BufferedInputStream bis=new BufferedInputStream(fis);//将文件输入流写入到缓冲输入流中。
/*
		byte[] buf=new byte[100];
		int len=bis.read(buf);
		System.out.println(new String(buf,0,len));
		bis.close();
*/		
		DataInputStream dis=new DataInputStream(bis);
		System.out.println(dis.readFloat());
		System.out.println(dis.readInt());
		System.out.println(dis.readShort());
		System.out.println(dis.readDouble());
		System.out.println(dis.readChar());
		System.out.println(dis.readBoolean());
		System.out.println(dis.readLong());
		System.out.println(dis.readByte());
		dis.close();
		//要注意读与写的次序要对应否则会出错。
//------------------------(/4)----------------------------------
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -