java 标准输入流 关闭 打开_java--标准输入输出流

//读取键盘录入的数据写到a.txt

//方式一

private static void method() throws IOException {

//创建输入流对象

InputStream is = System.in;

Reader r = new InputStreamReader(is);

//创建输出流对象

FileWriter fw = new FileWriter("a.txt");

//读取数据

byte[] bys = new byte[1024];

int len;

while((len = is.read(bys))!=-1)

{

fw.write(new String(bys, 0, len));

fw.flush();

}

fw.close();

is.close();

}

//方式二

private static void method2() throws IOException {

//创建输入流对象

InputStream is = System.in;

Reader r = new InputStreamReader(is);

//创建输出流对象

FileWriter fw = new FileWriter("a.txt");

//读取数据

char[] chs = new char[1024];

int len;

while((len = r.read(chs))!=-1)

{

fw.write(chs, 0 , len);

fw.flush();

}

fw.close();

r.close();

}

// 将文件中的数据输出到控制台

BufferedReader br = new BufferedReader(new FileReader("a.txt"));

//OutputStream os = System.out;

//Writer w = new OutputStreamWriter(System.out);

//BufferedWriter bw = new BufferedWriter(w);

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

String line;

while((line = br.readLine())!=null)

{

bw.write(line);

bw.newLine();

}

bw.close();

br.close();

//使用打印流复制文本文件

private static void method3() throws FileNotFoundException, IOException {

//创建输入流对象

BufferedReader br = new BufferedReader(new FileReader("a.txt"));

//创建打印流对象

PrintWriter pw = new PrintWriter(new FileWriter("b.txt"),true); // 此处true,是自动刷新

String line;

while((line = br.readLine())!=null)

{

pw.println(line);

}

pw.close();

br.close();

}

//使用字节流进行文件的复制(复制二进制文件)

private static void method() throws FileNotFoundException, IOException {

FileInputStream fis = new FileInputStream("这里是一个文件名");

FileOutputStream fos = new FileOutputStream("另一个问件名");

// 一次读一个字节

// int by;

// while((by = fis.read() ) !=-1){

// fos.write(by);

// }

// 一次读取一个字符数组

int len;

byte[] bys = new byte[1024];

while((len = fis.read(bys))!=1){

fos.write(len);

}

fis.close();

fos.close();

}

对象操作流

可以用于读写任意类型的对象

ObjectOutputStream :对象输出字符流

WriteObject

ObjectInputStream :对象输入字符流

ReadObject

注意:

使用对象输出流写出对象,只能使用对象输入流来读取对象

只能将支持java.io.Serializable 接口的对象写入流中

Serializable:序列号,是一个标识接口,只起表示作用,没有方法

当一个类的对象需要进行IO流进行读写的时候,这个类必须实现此接口

//eg:创建用于文件读写的学生类对象

public class Student implements Serializable{

private static final long serialVersionUID = -4114259825335049236L; // 固定序列号

String name;

int age;

public Student(String name,int age) {

this.age = age;

this.name = name;

}

@Override

public String toString() {

return "Student [name=" + name + ", age=" + age + "]";

}

}

//将学生对象写入文件

private static void method() throws IOException, FileNotFoundException {

//创建对象输出流的对象

//FileOutputStream fos = new FileOutputStream("a.txt"); // 字节输出流

//ObjectOutputStream oos = new ObjectOutputStream(fos);

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("a.txt"));

//创建学生对象

Student s = new Student("zhangsan", 18);

Student s2 = new Student("lisi",19);

//写出学生对象

oos.writeObject(s);

oos.writeObject(s2);

//释放资源

oos.close();

}

//将文件中的学生对象读取出来

private static void method2() throws IOException, FileNotFoundException, ClassNotFoundException {

//创建对象输入流的对象

ObjectInputStream ois = new ObjectInputStream(new FileInputStream("a.txt"));

/* //读取对象

java.lang.Object obj = ois.readObject();

System.out.println(obj);

java.lang.Object obj2 = ois.readObject();

System.out.println(obj2);

java.lang.Object obj3 = ois.readObject();

System.out.println(obj3);*/

try{

while(true)

{

java.lang.Object obj = ois.readObject();

System.out.println(obj);

}

} catch(EOFException e){

System.out.println("读到了文件的末尾");

}

//释放资源

ois.close();

}

// 另一种方式写入

private static void method3() throws IOException, FileNotFoundException {

// 另一种写入对象文件的方式(将所有对象写入到集合对象中)

//创建对象输出流对象

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("b.txt"));

//创建集合对象

ArrayList list = new ArrayList();

//添加学生对象

list.add(new Student("wangwu", 19));

list.add(new Student("zhaoliu", 20));

//写出集合对象

oos.writeObject(list);

//释放资源

oos.close();

}

//另一种读取方式

private static void method4() throws IOException, FileNotFoundException, ClassNotFoundException {

//创建对象输出流对象

ObjectInputStream ois = new ObjectInputStream(new FileInputStream("b.txt"));

//读取数据

java.lang.Object obj = ois.readObject();

//System.out.println(obj);

// 向下转型,获取具体的子类对象

ArrayList list = (ArrayList) obj;

for(Student stu:list)

{

System.out.println(stu);

}

//释放资源

ois.close();

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504807.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

adb native raact 夜神_React-Native安装及环境搭建(夜神模拟机运行)

React-Native环境搭建及运行必须安装的依赖有:Node、JDK 和 Android Studio。Node去官方下载,安装一直下一步下一步就好,最好是改下安装路径。这里主要记录JAVA JDK和Android Studio.一.安装JAVA JDKJAVA和React Native没有直接关系。React N…

php object keys_原生js中Object.keys方法详解

实际开发中,有时需要知道对象的所有属性,原生js提供了一个方法Object.keys()。Object.keys(obj)返回的是一个数组,该数组的所有元素都是字符串。这些元素是来自于给定的obj可直接枚举的属性,这些属性的顺序与手动遍历该对象属性时…

中望3d快捷键命令大全_CAD、3D快捷命令

1、对象特性ADC, *ADCENTER(设计中心“Ctrl+2”)CH, MO *PROPERTIES(修改特性“Ctrl+1”)MA, *MATCHPROP(属性匹配)ST, *STYLE(文字样式)COL, *COLOR(设置颜色)LA, *LAYER(图层操作)LT, *LINETYPE(线形)LTS, *LTSCALE(线形比例)LW, *LWEIGHT(线宽)UN, *U…

php 字符串函数 教程_PHP 字符串获取 substr 与 strstr 函数

PHP 字符串获取用于从字符串中获取指定字符串。相关函数如下:substr():从字符串中获取其中的一部分strstr():查找字符串在另一个字符串中第一次出现的位置,并返回从该位置到字符串结尾的所有字符subchr():同 strstr()s…

can通道采样频率_CAN采样点设置为多少合适?设置不对会咋样?

网上有人说道&#xff1a;(1)一般配置在75-80%的位置(2)选择采样点位置在85%左右为佳(3)75% when 波特率 > 800K80% when 波特率 > 500K87.5% when 波特率 < 500K那么到底是多少呢&#xff1f;本博主在ISO11898-1没有找到确切的值。但是cia官网找到了(http:…

简单的php,php简单语句

标签&#xff1a;(01)PHP标记 <?php ?>?>(02)输出语句//echo 不加括号能打印多个值//print 有返回值不能打印多个值//die() 输出并退出程序//exit() 输出并退出程序//printf() 格式化输出//sprintf() 格式化返回//var_dump() 输出全部信息和内…

内固定取出术后护理_股骨内固定钢板取出术后护理查房记录范文

病情分析&#xff1a;2009年10月26日 手术后精神,饮食,睡眠,体重变化等指导意见&#xff1a;一, 护理业务查房&#xff1a;  1, 临床临床护理查房&#xff1a;  是对新入,危重病人的现存护理问题,措施,护理效果,护理质量进行的护理查房,目的是检查,指导责任护士的工作质量,…

python echo命令_如何用Python调用外部命令

解决方法方法1&#xff1a;我们可以使用subprocess&#xff0c;比如要执行 ls -l 命令import subprocesssubprocess.run("ls", "-l")Python3.5 之前的版本&#xff0c;需要使用 callimport subprocesssubprocess.call(["ls", "-l"])方…

vba php,VBA

【行业前景】很多时候&#xff0c;当我们提起VBA&#xff0c;就想到和Excel有关&#xff0c;其实这里所提到的VBA是依附在Excel平台上进行的二次开发&#xff0c;当然它还可以大量应用在其他的软件中&#xff0c;可用VBA进行二次开发。对于我们最常使用的Excel&#xff0c;VBA可…

ios 捕抓crash_ios crash的原因与抓取crash日志的方法

首先我们经常会闪退的异常有哪些呢&#xff1f;crash的产生来源于两种问题&#xff1a;违反iOS策略被干掉&#xff0c;以及自身的代码bug。1.IOS策略1.1低内存闪退前面提到大多数crash日志都包含着执行线程的栈调用信息&#xff0c;但是低内存闪退日志除外&#xff0c;这里就先…

php 多线程上传,PHP CURL 多线程操作代码实例

/** Curl 多线程类* 使用方法&#xff1a;* $urls array("http://baidu.com", "http://dzone.com", "http://google.com");$mp new MultiHttpRequest($urls);$mp->start();* */class MultiHttpRequest {public $urls array();public $curl…

jlabel 不能连续两次set_为什么有时连续多次setState只有一次生效?

例如下面的代码&#xff0c;两次打印出的结果是相同的&#xff1a;componentDidMount() {this.setState({ index: this.state.index 1 }, () > {console.log(this.state.index);})this.setState({ index: this.state.index 1 }, () > {console.log(this.state.index);}…

java字符流实际上也是字节,[Java教程]Java字节流与字符流的区别

[Java教程]Java字节流与字符流的区别0 2017-05-22 12:00:42字节流与和字符流的使用非常相似&#xff0c;两者除了操作代码上的不同之外&#xff0c;是否还有其他的不同呢&#xff1f;实际上字节流在操作时本身不会用到缓冲区(内存)&#xff0c;是文件本身直接操作的&#xff0c…

redis主从集群搭建eclipse_【Redis】Redis 主从模式搭建

主从模式介绍Redis虽然读取写入的速度都特别快&#xff0c;但是也会产生读压力特别大的情况。为了分担读压力&#xff0c;Redis支持主从复制&#xff0c;Redis的主从结构可以采用一主多从或者级联结构&#xff0c;Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图…

unicode编码 php,PHP 的 UNICODE 编码和解码

方法一:function unicode_encode($name){$name iconv(UTF-8, UCS-2, $name);$len strlen($name);$str ;for ($i 0; $i < $len - 1; $i $i 2){$c $name[$i];$c2 $name[$i 1];if (ord($c) > 0){ //两个字节的文字$str . \u.base_convert(ord($c), 10, 16).str_pad…

django models索引_sql – 为什么Django显式地在唯一字段上创建索引

更新&#xff1a;进一步简化实验psql的Q&#xff1a;对于以下Django模型&#xff1a;class Book(models.Model):name models.TextField(uniqueTrue)pg_dump(PostgreSQL 9.3)显示下表&限制&#xff1a;CREATE TABLE book (id integer NOT NULL,name text NOT NULL,);ALTER …

php获取指定日期的万年历,分享3个php获取日历的函数

提供一个日期,获取这个日期的星期对应日历列表,键为星期标示$month_date 2015-09-25;$start_time strtotime($month_date);$start_week date(w, $start_time);$total_month_day date(t, $start_time);$weeks_in_month ceil(($start_week$total_month_day)/7);$month_day_a…

php获取html中文本框内容_小猿圈Python入门之批量获取html内body内容的方法

对于人工智能你了解有多少&#xff1f;你知道Python的使用吗&#xff1f;这个对于大部分初学者来说都是很难的&#xff0c;小猿圈Python讲师会每天为大家选择分享一个知识点&#xff0c;希望对你学习Python有所帮助&#xff0c;今天分享的就是批量获取html内body内容的方法。现…

php改名下载,PHP如何给上传的文件改名

PHP如何给上传的文件改名发布时间&#xff1a;2020-08-03 16:07:39来源&#xff1a;亿速云阅读&#xff1a;72作者&#xff1a;LeahPHP如何给上传的文件改名&#xff1f;相信很多没有经验的人对此束手无策&#xff0c;为此本文总结了问题出现的原因和解决方法&#xff0c;通过这…

python 循环 覆盖之前print内容_Python爬虫第二战---爬取500px图片

前言&#xff1a;如今的高速网络极大促进了信息的展示方式&#xff0c;高清图片&#xff0c;视频等成就了我们的视听盛宴。但是&#xff0c;我们获取到的图片或者视频可能是被压缩过的&#xff0c;所以总体上还是有点小瑕疵&#xff0c;今天呢&#xff0c;我给大家带来一篇使用…