【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流有所了解,平时使用的 ...
随机推荐
- windwos创建和删除服务
创建 >sc create <service name> type=kernel binpath="C:\hsys.sys" 删除 win+r 输出 regedi ...
- Flutter 创建透明的路由页面
原文 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends St ...
- Renice INC:不同颜色的酒帽所代表的意义
酒帽就是酒瓶上方的热缩胶帽/锡帽/蜡封,也就是开瓶前要割掉的那一层保护物,所有的法国酒在酒帽上,都会有一个圆形贴纸,除了有不同颜色外,上面还有一串号码,有可能很多人在喝酒时都不会对这个酒帽有更多的在意 ...
- WLAN-AC+AP射频一劳永逸的调优方式
AP射频调优组网图 射频调优简介 射频调优的主要功能就是动态调整AP的信道和功率,可以使同一AC管理的各AP的信道和功率保持相对平衡,保证AP工作在最佳状态.WLAN网络中,AP的工作状态会受到周围环 ...
- 数据库范式(1NF/2NF/3NF)
本文转载自数据库范式(1NF/2NF/3NF) 概述 范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式 ...
- winform程序post提交数据API
工作经验 备忘 //API接口 using (var Client = new HttpClient()) { Client.BaseAddress = new Ur ...
- eclipse快速定位当前类所在位置
如何快速的找到一个类并且定位它所在的位置呢?这里以搜索Menu类为例说明. 可以通过CTRL + SHIFT +R的组合键,输入Menu 双击Menu.java即可跳转到对应的类上,但此时还不知道此类 ...
- React Context 理解和使用
写在前面 鉴于笔者学习此内容章节 React官方文档 时感到阅读理解抽象困难,所以决定根据文档理解写一篇自己对Context的理解,文章附带示例,以为更易于理解学习.更多内容请参考 React官方 ...
- JWT原理及常见攻击方式
JWT的全称是Json Web Token.它遵循JSON格式,将用户信息加密到token里,服务器不保存任何用户信息,只保存密钥信息,通过使用特定加密算法验证token,通过token验证用户身份. ...
- 基于Hi3559AV100的视频采集(VDEC-VPSS-VO)整体框图设计
下面给出基于Hi3559AV100的视频采集整体设计,具体设计将在后续给出: 图形采集端整体设计 Hi3559AV100软件程序按结构划分可分为4层,第一层是硬件驱动层,第二层是操作系统层,第三层是媒 ...