【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流有所了解,平时使用的 ...
随机推荐
- Flutter 使用Tabbar不要Title
原文 Demo 1 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp ext ...
- DeFi里的灰度?每月获得高收益?BGV代币初探
2020年已经接近了尾声,但是DeFi市场的热闹场面并没有停止,或者说,一直在延续.资本市场不断将大批的资金投入到DeFi市场中,以求在这波热潮中赚得一波又一波红利. 美国时间12月21日,Bacca ...
- C++算法代码——笨小猴
题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1163 题目描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了 ...
- Promise和async await详解
本文转载自Promise和async await详解 Promise 状态 pending: 初始状态, 非 fulfilled 或 rejected. fulfilled: 成功的操作. rejec ...
- Same Origin Policy 浏览器同源策略详解
同源策略 Same Origin Policy 日常开发中最常与网络打交道,那关于浏览器的同源策略和跨域相关的知识是该整理一下了. 首先需要明确的是,同源策略是浏览器的安全策略,由于存在这个策略,我们 ...
- 查看浏览器 请求网页 中 header body cookie
command + alt + i 进入开发者工具 重新刷新页面进行请求URL 进入Network 选中某个url 右侧会展示详细信息
- NPOI 在指定单元格导入导出图片
NPOI 在指定单元格导入导出图片 Intro 我维护了一个 NPOI 的扩展,主要用来导入导出 Excel 数据,最近有网友提出了导入 Excel 的时候解析图片的需求,于是就有了本文的探索 导入E ...
- monkey稳定性测试的步骤及策略
1.adb的作用是什么?adb的全称:android debug bridge 安卓调试桥梁,包含在 Android SDK 平台工具软件包中.通过该命令与设备进行通信,以便进行调试adb可以同时管理 ...
- 剑指 Offer 31. 栈的压入、弹出序列 + 入栈顺序和出栈顺序的匹配问题
剑指 Offer 31. 栈的压入.弹出序列 Offer_31 题目详情: 解析: 这里需要使用一个栈来模仿入栈操作. package com.walegarrett.offer; /** * @Au ...
- BIMFACE二次开发【C#系列】
本系列文章主要介绍使用 C# .ASP.NET(MVC)技术对 BIMFACE 平台进行二次开发,以满足本公司针对建筑行业施工图审查系统的业务需求,例如图纸模型(PDF 文件.二维 CAD 模型.三维 ...