【Java】流、IO(初步)
(这部分比较抽象且写的不是很好,可能还要再编辑)
【概述】
流:流是一系列数据,包括输入流和输出流。你可以想象成黑客帝国的“代码雨”,只要我们输入指令,这些数据就像水一样流进流出了
IO:Input和OutPut,输入和输出文件
通过IO流,我们可以利用Java去读取来自文件的数据(目前阶段大多是记事本里面的数据)
下面列举了常见的流
因为我们只是初步了解使用IO流,并不需要全部了解这些流,下面会逐步写出现阶段用到的流
在使用之前,别忘了打上你的import java.io;
【BufferedReader】
BufferedReader类从字符输入流中读取文本并缓冲字符,以便有效地读取字符,数组和行
由Reader构成的每个读取请求都会导致相应的读取请求由基础字符或字节流构成,建议通过BufferedReader包装Reader的实例类以提高效率
可以暂时把BufferedReader理解为一个存储数据的,“缓冲流”
import java.io.*;
public class BRReadLines{
public static void main(String args[]) throws IOException{
BufferedReaderbr= new BufferedReader(new InputStreamReader(System.in));
String str;System.out.println("Enter lines of text.");
System.out.println("Enter 'end' to quit.");
do {
str = br.readLine();
System.out.println(str);
} while (!str.equals("end"));
}
}
【FileInputStream】
选择一个现有文件作为输入流,这个路径可以在文件的“属性”里面复制,另外当文件处在原程序的文件夹里面,可以只写文件名不用写全部路径
InputStreamf = new FileInputStream("C:/java/hello");
或者
File f = new File("C:/java/hello");
InputStreamout = new FileInputStream(f);
FileInputStream中的一些方法
public void close() throws IOException{}
protected void finalize()throws IOException{}
public int read(int r)throws IOException{}
public int read(byte[] r) throws IOException{}
public int available() throws IOException{}
【FileOutputStream】
有Input就有Output
OutputStream f= new FileOutputStream("C:/java/hello");
或者
File f= new File("C:/java/hello");
OutputStream f= new FileOutputStream(f);
FileOutputStream中的一些方法
public void close() throws IOException{}
protected void finalize()throws IOException{}
public void write(int w)throws IOException{}
【一些实例代码】
A
public static void main(String args[]) throws IOException {
File f = new File("C:/Users/zhang/eclipse-workspace/HelloWord/src/lecture13/a1.txt");
// Make sure the path is correct!
// path coped from windows is C:\Users\zhang\eclipse-workspace\HelloWord\src\lecture13
FileOutputStream fop = new FileOutputStream(f);
// Create FileOutputStream object, a new file will be created if it does not exist.
OutputStreamWriter writer = new OutputStreamWriter(fop, "gbk");
// Create OutputStreamWriter object, second argument is data format, gbk for windows, UTF-8 for Linux
writer.append("Hello");
// Appends the specified character sequence to this writer.
writer.append("\n");
// Appends a line return to this writer.
writer.append("CS161FZ");
// Appends the specified character sequence to this writer.
writer.close();
//Closes the stream, flushing it first.
fop.close();
// Closes this file output stream and releases any system resources associated with this stream.
FileInputStream fip = new FileInputStream(f);
// Create a FileInputStream对 object
InputStreamReader reader = new InputStreamReader(fip, "gbk");
// Create a InputStreamReader object, same data format with the above
StringBuffer sb = new StringBuffer();
while (reader.ready()) {
sb.append((char) reader.read());
// convert to char, and add to StringBuffer object
}
System.out.println(sb.toString());
reader.close();
// close read stream
fip.close();
// Closes this file input stream and releases any system resources associated with the stream.
}
B
public static void main(String[] args) throws IOException {
File f = new File("C:/Users/zhang/eclipse-workspace/HelloWord/src/lecture13/test.txt");
FileOutputStream fop = new FileOutputStream(f);
OutputStreamWriter writer = new OutputStreamWriter(fop, "gbk");
int datatoWrite[] = {11, 21, 3, 40, 5, 74, 89};
for (int i = 0; i < datatoWrite.length; i++) {
writer.append(Integer.toString(datatoWrite[i])); // writes the ints
writer.append("\n");
}
writer.close();
// If you forget to close the writer, YOU CAN NOT SUCESSFULLY WRITER!
fop.close();
FileInputStream fip = new FileInputStream(f);
BufferedReader br = new BufferedReader(new InputStreamReader(fip, "gbk"));
while(br.ready()) {
System.out.println(br.readLine());
}
br.close();
fip.close();
}
【Java】流、IO(初步)的更多相关文章
- Java的IO流以及输入流与输出流的异同
一:流的基本概念: Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.J ...
- java的IO流
java的IO流继承四大抽象类分别是字节流 inputStream outputStream与字符流 read write.怎么理解记忆很重要. 直接连接读写对象的是结点流,例如对文件读取字节类的名字 ...
- Java基础——IO流
今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...
- 【Java】IO流简单分辨
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827509.html Java的IO流体系十分庞大,并且体系层次稍复杂,很容易记混或记错.在此,我把平时经常用 ...
- Java - 文件(IO流)
Java - 文件 (IO) 流的分类: > 文件流:FileInputStream | FileOutputStream | FileReader | FileWriter ...
- Java中IO流的总结
有关Java中IO流总结图 流分类 按方向分 输入流 输出流 按单位分 字节流 字符流 按功能分 节点流 处理流(过滤流) 其他 所有的流继承与这四类流:InputSteam.OutputStream ...
- Java之IO流详解
IO流 Input/Output 完成输入/输出 应用程序运行时——数据在内存中 ←→ 把数据写入硬盘(磁带) 内存中的数据不可持久保存的 输入:从外部存储器(硬盘.磁带.U盘)把数据读入内存. ...
- Java笔记:Java 流(Stream)、文件(File)和IO
更新时间:2018-1-7 12:27:21 更多请查看在线文集:http://android.52fhy.com/java/index.html java.io 包几乎包含了所有操作输入.输出需要的 ...
- JAVA基础-IO流(一)
一.IO流 IO流是Java为方便我们对文件的读写进行操作而提供的一种技术.按照读取写入文件的方式不同可以分为字符流和字节流,而每个流派按照功能又分为读和写.字符流读写操作的根类为Reader和Wri ...
- JAVA中IO流总结
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42119261 我想你对JAVA的IO流有所了解,平时使用的 ...
随机推荐
- APC体育公司重视“女性经济 ”深度挖掘女性市场
据消费者追踪服务调查数据显示,从2020年1月到8月,a private company体育公司(公司编号:08703733)品牌下的女性运动服装的在线销售额较上一年增长了77%. 女性市场已然成为A ...
- 观点纠正,yarn和npm对比,今天yarn仍然比npm快吗
yarn和npm的区别和对比,网上很多了,不多说了. 只纠正一个观点:yarn仍然比npm快吗?不. 2016年,yarn刚刚发布,速度确实比npm快,于是网络上出现了好多推荐yarn的文章. 于是很 ...
- JVM系列(四):java方法的查找过程实现
经过前面几章的简单介绍,我们已经大致了解了jvm的启动框架和执行流程了.不过,这些都是些无关痛痒的问题,几行文字描述一下即可. 所以,今天我们从另一个角度来讲解jvm的一些东西,以便可以更多一点认知. ...
- 微信小程序:列表渲染
wx:for,(wx:for-item,wx:for-index),wx:key. 列表循环包括数组循环和对象循环 一.数组循环 此时控制台报错如下:属性"wx:key"可以提高性 ...
- 导出----用Excel导出数据库表
根据条件导出表格: 前端 <el-form-item label=""> <el-button type="warning" icon=&qu ...
- Python3+PYQT5 实现并打包exe小工具(2)
前言:前篇已经通过python代码实现了逻辑,传送门:https://www.cnblogs.com/jc-home/p/14447850.html 现在后篇记录的是打包成exe的方式给项目其他同事使 ...
- 第30天学习打卡(异常概述 IO流概述)
异常概述 即非正常情况,通俗的说,异常就是程序出现的错误 异常的分类(Throwable) 异常(Exception) 合理的应用程序可能需要捕获的问题 举例:NullPointerException ...
- SQL学习笔记——创建数据库显示:文件激活错误,物理文件名不存在>>解决方案
今天在创建数据库时,跟着老师一步一步的操作创建成功,但出于在厌恶冗长的数据库存储路径,于是,擅自更改了数据filename,让他保存在电脑桌面新建的文件夹,可是一执行就报错了. 老师源码: 1 cre ...
- 剑指 Offer 61. 扑克牌中的顺子 + 简单题 + 思维
剑指 Offer 61. 扑克牌中的顺子 Offer_61 题目描述 java代码 package com.walegarrett.offer; /** * @Author WaleGarrett * ...
- CCF(元素选择器:50分):字符串+模拟
元素选择器 201809-3 这里我只考虑了没有后代选择器的情况 #include<iostream> #include<cstdio> #include<cstring ...