java--输入输出流-IO流

IO流用得到最多的是文件字节输入输出流,FileInputStream、FileOutputStream

public class IODemo {
	/**
	 * FileReader文件字符读取流
	 * 读取文件,一个字符一个字符的读
	 *效率低
	 */
	@Test
	public void testFileReader() {
		//一个个读
		FileReader fileReader=null;//外部定义,扩大范围
		try {
			fileReader=new FileReader("a.txt");
			//Returns:The character read, or -1 if the end of the stream has beenreached
			//返回读取的字符,到达流尾部返回-1
			int ch1=fileReader.read();
			System.out.println(ch1);//113
			System.out.println((char)ch1);//q
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			if (fileReader != null) {
				try {
					fileReader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			} else {
				System.out.println("文件为空!");
			}
		}
	}
	
	@Test
	public void test2() {
		//while读所有
		FileReader fileReader=null;//外部定义,扩大范围
		try {
			fileReader=new FileReader("a.txt");
			int ch=-1;
			while ((ch=fileReader.read()) != -1) {//最后-1退出
				System.out.println(ch);//97
				System.out.println((char)ch);//a
			}
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			if (fileReader != null) {
				try {
					fileReader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			} else {
				System.out.println("文件为空!");
			}
		}
	}
	
	/**
	 * 字符流  char[] buffer
	 */
	@Test
	public void test3() {
		//读所有--数组
				FileReader fileReader=null;//外部定义,扩大范围
				FileWriter fileWriter=null;
				try {
					fileReader=new FileReader("a.txt");
					fileWriter=new FileWriter("b.txt");
					char[] buffer=new char[10];
					int length=0;
					while ((length=fileReader.read(buffer)) != -1) {//一次读一个数组10个数,最后-1退出
						System.out.println(length);
						System.out.println(Arrays.toString(buffer));
						
						fileWriter.write(buffer, 0, length);//write(buffer,offset,length)数组、偏移量、长度
					}
				} catch (FileNotFoundException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				}finally {
					if (fileReader != null) {//try中可能发生异常,所以要判断一下是否为空
						try {
							fileReader.close();
						} catch (IOException e) {
							e.printStackTrace();
						}
					} 
					if (fileWriter != null) {
						try {
							fileWriter.close();
						} catch (IOException e) {
							e.printStackTrace();
						}
					}
				}
	}
	
	/**
	 * 字节输入流  byte[] buffer
	 */
	@Test
	public void test4() {
		FileInputStream fileInputStream=null;
		FileOutputStream fileOutputStream=null;
		try {
			fileInputStream=new FileInputStream("a.jpg");
			fileOutputStream=new FileOutputStream("b.jpg");
			byte[] buffer=new byte[1024];
			int length=-1;
			while ((length=fileInputStream.read(buffer))!=-1) {
				fileOutputStream.write(buffer, 0, length);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			if (fileInputStream != null) {
				try {
					fileInputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if (fileOutputStream != null) {
				try {
					fileOutputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
	}
	
	@Test
	/**
	 * 对象流   要实现序列化接口
	 * 写入文件,文件输出流,对象输出流
	 */
	public void test5() {
		Student student=new Student(1,"za", 13, "nan");
		FileOutputStream fileOutputStream=null;
		ObjectOutputStream objectOutputStream=null;
		try {
			fileOutputStream=new FileOutputStream("student.data");
			objectOutputStream=new ObjectOutputStream(fileOutputStream);
			objectOutputStream.writeObject(student);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			if (objectOutputStream != null) {//不判断一下,try中异常的话此处会报空指针
				try {//A依赖于B,先关闭A
					objectOutputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}if (fileOutputStream != null) {
				try {
					fileOutputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
        System.out.println(student);		
	}
	
	@Test
	/**
	 * 对象输入流
	 * 文件输入流,读取文件
	 */
	public void test6() {
		FileInputStream fileInputStream=null;
		ObjectInputStream objectInputStream=null;
		try {
			fileInputStream=new FileInputStream("student.data");
			objectInputStream=new ObjectInputStream(fileInputStream);
			Student student=(Student)objectInputStream.readObject();
			System.out.println(student);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}finally {
			if (objectInputStream !=null) {
				try {
					objectInputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if (fileInputStream != null) {
				try {
					fileInputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值