NJUPT JAVA语言 流处理程序设计
一、 实验目的和要求
实验目的和要求:要求学生能在学习和理解课堂学习内容中JAVA流编程理论的基础上,学习并逐步掌握JAVA流程序的编写和调试,学习依据处理需求对不同流的正确选择使用和组合用法。
实验内容:设计和编写一个程序从键盘读入一行字符串,将其写入一个文本文件里,再编写还有一个程序从文本文件里读入字符串并在命令行窗体显示出来。
二、实验代码
写入文件
package think; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream.GetField; public class java_exp_03iostream { public static void main(String[] args) { //字符缓冲流
BufferedReader br = null;
BufferedWriter bw = null;
try {
//br=newBufferedReader(newFileReader("d:\\buffered.txt"));
//从键盘读取字节流 转化成字符流 包装成缓冲字符流
br= new BufferedReader(new InputStreamReader(System.in));
bw = new BufferedWriter(new FileWriter("d:\\buffered.txt"));
for(String str; (str= br.readLine() )!= null ; )
{
if(str.equalsIgnoreCase("e")||str.equalsIgnoreCase("exit"))
{ System.out.println("退出");break;}
else
{
bw.write(str);
bw.newLine(); //行分隔符
}
} } catch (IOException e) {
e.printStackTrace();
// TODO: handle exception
}finally //关闭两个buffered对象
{
try {
if(br != null)
br.close();
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
try {
if(bw != null)
bw.close();
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
} } } }<span style="font-weight: bold;"> </span>
控制台输入字符串,输入e退出,把字符串写入文件。
第二个程序读出文件内容。
<span style="font-size:12px;"><strong>p</strong>ackage think; import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException; public class java_exp_03read {
public static void main(String[] args) {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("d:buffered.txt"));
for(String str; (str= br.readLine() )!= null ; )
{ System.out.println(str);
} } catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}finally{
try {
if(br != null)
br.close();
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
} }
} }</span>
三、实验总结
IO流学习小结:
*FileInputStream
*FileOutputStream 字节 文件输入输出流
*FileReader
*FileReader 字符 文件输入输出流
*Buffered+* 缓冲流类 属于过滤流 包装 文件流 经常使用
*InputStreamReader
*OutputStreamReader 转换流
*DataInputStream
*DataOutputStream 数据流
*PrintStream
*PrintWriter 打印流
*ObjectOutputStream
*ObjectInputStream 对象流
总体的思路:
*文件的输入输出有非常多种方法能够实现,差别在于效率,字符的编码不同,採用的方式可能也不同。
遇到的问题和解决办法:
*问题: 最先採用的方法是FileInputStream,FileOutputStream。假设写入的是英文或者数字,没问题。假设是中文,则从文件输入的时候,有问题。输出到文件没问题。
百度+思考了一会儿,结果例如以下:unicode编码时,中文是两个字节编码的。用字节流的方式从文件读进来的时候,遇到中文的字符,把中文拆成两个字节读取,所以会乱码。
而字节流输出到文件的时候,会依据平台的默认编码方式把中文字符转换成了字节数组,一个字节一个字节的输出文件。windows记事本能够自己主动认出中文字符。所以,文本内容须要读取的时候,一般不用字节流。
* 优化:在用了字符流输入输出之后。又用了缓冲流。来提高效率。
先把读取或者写入到文件的内容,先保存在缓冲数组里,一次性写入或者输出,提高了效率。
在我写的程序能够非常好的体现出来:比方。我在从console写字符到文件的时候。输入 e 或者 exit结束。再没有输入e 和exit的时候,打开buffered的时候。会发现是没有内容的。
结束之后,才显示内容。
* 心得:C。C++文件的输入输出都学过,可是因为平时非常少写小软件,所以没用到这个。
可是输入输出非常重要。
NJUPT JAVA语言 流处理程序设计的更多相关文章
- 已看1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。[泛型]\
1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架.多线程(并发编程).I/O(NIO).Socket.JDBC.XML.反射等.[泛型]\1* ...
- java语言实现对程序设计语言源文件统计字符数、单词数、行数及其他拓展功。
本次作业Github项目地址:https://github.com/YiChenglong2018/WordCount 一.项目简介 本项目的需求可以概括为:对程序设计语言源文件统计字符数.单词数.行 ...
- 0031 Java学习笔记-梁勇著《Java语言程序设计-基础篇 第十版》英语单词
第01章 计算机.程序和Java概述 CPU(Central Processing Unit) * 中央处理器 Control Unit * 控制单元 arithmetic/logic unit /ə ...
- Java语言程序设计(基础篇)第一章
第一章 计算机.程序和Java概述 1.1 引言 什么是程序设计呢? 程序设计就是创建(或者开发)软件,软件也称为程序. 1.2 什么是计算机 计算机是存储和处理数据的电子设备,计算机包括硬件(har ...
- 《JAVA语言程序设计》上课笔记
教学目标:1.使学生了解JAVA课程的性质.定位.作用:为什么要学习JAVA?让学生知道如何学好JAVA: 教学内容: 一. 问几个问题 1. 你们到这里来干什么 ...
- Java语言程序设计-助教篇
1. 给第一次上课(软件工程)的老师与助教 现代软件工程讲义 0 课程概述 给学生:看里面的第0个作业要求 2. 助教心得 美国视界(1):第一流的本科课堂该是什么样?(看里面的助教部分) 助教工作看 ...
- Java语言程序设计复习提纲
这是我在准备Java考试时整理的提纲,如果是通过搜索引擎搜索到这篇博客的师弟师妹,建议还是先参照PPT和课本,这个大纲也不是很准确,自己总结会更有收获,多去理解含义,不要死记硬背,否则遇到概念辨析题 ...
- java语言程序设计(一)-1
java 语言的特点是: 强类型,制定了比较多的语言规范,尽可能在编译阶段检测出更多的错误及警告. 编译和解释,首先将源代码编译成codebyte,运行时,java的运行系统装载和链接需要执行的类,并 ...
- 全国计算机等级考试二级笔试样卷Java语言程序设计
一.选择题((1)-(35)每小题2分,共70分) 下列各题A).B).C).D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分. (1)下列选项中不符合良好程 ...
随机推荐
- ashx 文件的使用
它就类似.aspx文件,用于处理传入到服务器的HTTP请求,但它不会像.aspx文件那样要返回处理结果和大量HTML,它可以返回简单的字符串.图片等. 百度百科定义链接:http://baike.ba ...
- ACM_情人节
情人节 Time Limit: 2000/1000ms (Java/Others) Problem Description: 某发每天都在各大群水啊水,然后认识了很多崇拜他的妹子,毕竟是数学专业.这不 ...
- ACM_三元一次函数解法(克莱姆法则)
三元一次函数 Time Limit: 2000/1000ms (Java/Others) Problem Description: 计算三元一次函数..如图 Input: EOF,先输入n,表示样例个 ...
- 入门开发工具idea常见问题之选项中没有servlet
1.在maven中如果创建不了servlet,在project Setting旁边的添加一个web选项,就可以创建servlet了. 初次接触这个陌生的工具还是不太好弄.
- Google广告屏蔽插件adBlock
今天在博客园写博客的时候发现莫名其妙的在右侧被植入了广告,询问了管理员得知存在以下几种可能: 1.电信网络供应商劫持网页,植入广告 2.ADSafe(是一款去除广告的软件,效果很不错) 但经过最终排除 ...
- 研磨JavaScript系列(五):奇妙的对象
在JavaScript中,只有object和function两种东西有对象化的能力.我们先来说说函数的对象化能力. 任何一个函数都可以为其动态地添加或去除属性,这些属性可以是简单类型,可以是对象,也可 ...
- TCP简要讲解
TCP被称为面向连接.面向流,可靠的传输层协议.它与UDP最大的不同在于它是可靠性的,所以需要可靠传输的时候就需要用到TCP,如果需要快速传输则选择UDP. TCP的连接又称为3次握手. 1).客 ...
- html5——多媒体(二)
基本方法 load() //重新加载视频 play() //播放 pause() //暂停 基本属性 currentTime //视频播放的当前进度. duration //视频的总时间 paused ...
- 第一个真正意义的jsp程序,连接msql数据库
1. mysql数据库 :在百度上下一个安装包mysql-5.7.17.msi,只装服务即可,选择开发使用 2.建库,建表 mysql> create table testdb; 导入相关建表 ...
- 移动端rem布局 js
// rem布局适配 (function(doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in ...