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)下列选项中不符合良好程 ...
随机推荐
- 350 Intersection of Two Arrays II 两个数组的交集 II
给定两个数组,写一个方法来计算它们的交集.例如:给定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].注意: 输出结果中每个元素出现的次数, ...
- [转]五个Linux下用户空间的调试工具
有几个Linux下的用户空间调试工具和技术,它们用来分析用户空间的问题相当有用.它们是: 'print' 语句 查询 (/proc, /sys 等) 跟踪 (strace/ltrace) Valgri ...
- [Windows Server 2003] 安装PHP+MySQL方法
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:PHP+MyS ...
- Git学习总结二(版本回退)
修改修改仓库中readme.txt文件,然后用git status命令看看结果: $ git status On branch master Changes not staged for commit ...
- js生成web安全色
256色里有40种颜色在Macintosh和Windows里显示的效果不一样,所以能安全使用的只有216色. <!DOCTYPE HTML> <html> <head&g ...
- linux中快速查找文件
在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访 ...
- api 签名算法
<?php define('token', 'tokensecret'); // 定义私钥token /** * 哈希验证签名 */ function hmacSign($array, $tok ...
- C# 通知机制 IObserver<T> 和 IObservable<T>
class Program { public static void Main() { // Define a provider and two observers. LocationTracker ...
- 我的FPGA
转眼间我都工作三个年头了,这两年多时间我一直从事着FPGA测试工作,从一开始的懵懂无知,到现在的些许理解,我想记录和分享我对FPGA测试的理解. 之所以选择在博客园写这样,是我发现在这里阅览文章不需要 ...
- 《程序设计基础》实验题目2 c文件读取(反序列化?) 链表排序
题目: 每个学生的信息卡片包括学号.姓名和成绩三项.定义存储学生信息的单向链表的结点类型:编写函 数,由文件依次读入 n(n≥0)个学生的信息,创建一个用于管理学生信息的单向链表:编写函数,对 该链表 ...