Java学习笔记之 IO包 字节流
IO包最重要的五个类和一个接口
File/OutputStream/InputStream(字节流)/Writer/Reader(字符流)
一个接口:Serializable
File类:
字节流:
OutputStream与InputStream是抽象类
OutputStream是整个IO包中。字节输出流的最大类
FileOutputStream是一个子类,通经常使用整个子类通过多态实例化OutputStream
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29vZGh1YWp1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
packageiotest;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.IOException;
importjava.io.OutputStream;
importjava.io.FileOutputStream;
importjava.io.InputStream;
importjava.io.FileInputStream;
publicclass OutputStreamDemo1 {
public static void main(String args[]) throws Exception{
File f =newFile("D:"+File.separator+"javasrc"+File.separator+"write_file.txt");
OutputStream o=null;
o=new FileOutputStream(f);
String s="Hello World!";
byte b[]=s.getBytes();
o.write(b);
o.close();
//改动文件 追加文件内容
OutputStream o1=null;
o1=new FileOutputStream(f,true);
o1.write("\r\n".getBytes()); //添加换行符
o1.write(b);
o1.close();
//读取并打印文件
//01 定义一个字节数组 长度为1024
InputStream in1=null;
in1=new FileInputStream(f);
byte b1[]=new byte[1024];
int len=in1.read(b1);
in1.close();
print(b1,len);
//02 定义一个字节数组 长度为文件长度
InputStream in2=null;
in2=new FileInputStream(f);
byte b2[]=new byte[(int)f.length()];
in2.read(b2);
in2.close();
print(b2);
//03 已经文件长度 逐个字节读取
InputStream in3=null;
in3=new FileInputStream(f);
byte b3[]=new byte[(int)f.length()];
for (int i=0;i<b3.length;i++){
b3[i]=(byte) in3.read();
}
in3.close();
print("the third read method:");
print(b3);
//04 未知文件长度读取
InputStream in4=null;
in4=new FileInputStream(f);
byte b4[]=new byte[1024];
int i=0;
int temp=0;
while ((temp=in4.read())!=-1){
b4[i]=(byte)temp;
i++;
}
in4.close();
print("the fourth read method:");
print(b4);
}
public static void print(byte b[],int len){
System.out.println(new String(b,0,len));
}
public static void print(byte b[]){
System.out.println(new String(b));
}
public static void print(String b){
System.out.println(b);
}
}
Java学习笔记之 IO包 字节流的更多相关文章
- java学习笔记之IO编程—字节流和字符流
1. 流的基本概念 在java.io包里面File类是唯一一个与文件本身有关的程序处理类,但是File只能够操作文件本身而不能操作文件的内容,或者说在实际的开发之中IO操作的核心意义在于:输入与输出操 ...
- java学习笔记之IO编程—打印流和BufferedReader
1.打印流(PrintWriter) 想要通过程序实现内容输出,其核心一定是要依靠OutputStream类,但是OutputStream类有一个最大缺点,就是这个类中的输出操作功能有限,所有的数据一 ...
- java学习笔记之IO编程—File文件操作类
1. File类说明 在Java语言里面提供有对于文件操作系统操作的支持,而这个支持就在java.io.File类中进行了定义,也就是说在整个java.io包里面,File类是唯一一个与文件本身操作( ...
- 【原】Java学习笔记033 - IO
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:继承关系中爷 ...
- Java学习笔记之——IO
一. IO IO读写 流分类: 按照方向:输入流(读),输出流(写) 按照数据单位:字节流(传输时以字节为单位),字符流(传输时以字符为单位) 按照功能:节点流,过滤流 四个抽象类: InputStr ...
- java学习笔记之IO编程—内存流、管道流、随机流
1.内存操作流 之前学习的IO操作输入和输出都是从文件中来的,当然,也可以将输入和输出的位置设置在内存上,这就需要用到内存操作流,java提供两类内存操作流 字节内存操作流:ByteArrayOutp ...
- Java学习笔记-10.io流
1.输入流,只能从中读取数据,而不能向其写出数据.输出流,只能想起写入字节数据,而不能从中读取. 2.InputStream的类型有: ByteArrayInputStream 包含一个内存缓冲区,字 ...
- java学习笔记之IO编程—对象序列化
对象序列化就是将内存中保存的对象以二进制数据流的形式进行处理,可以实现对象的保存或网络传输. 并不是所有的对象都可以被序列化,如果要序列化的对象,那么对象所在的类一定要实现java.io.Serial ...
- java学习笔记之IO编程—目录和文件的拷贝
进行文件或目录的拷贝时,要先判断处理对象是文件还是目录,如果是文件则直接拷贝,如果是目录还需要拷贝它的子目录及其文件,这就需要递归处理了 import java.io.*; class FileUti ...
随机推荐
- Vue导航守卫beforeRouteEnter,beforeRouteUpdate,beforeRouteLeave详解
Vue导航守卫以我自己的理解就是监听页面进入,修改,和离开的功能.每个守卫接受三个参数 to: Route: 即将要进入的目标路由对象 from: Route: 当前导航正要离开的路由 next: F ...
- Java中的自定义注解
## 元注解 要声明一个注解, 我们需要元注解, 元注解是指注解的注解,包括@Retention, @Target, @Document, @Inherited. @Retention 注解的保留位置 ...
- [转]sed常用命令总结
转自:http://blog.chinaunix.net/uid-26963748-id-3249732.html 一.Sed简介 Sed:Stream Editor 流式编辑器 又称行编辑器,每次 ...
- Glide4.0 centerCrop属性和圆角 冲突
首先致谢:https://blog.csdn.net/flyinbed_/article/details/75506062 咱们不是代码的生产者,只是代码的搬运工. 最近有个工作中有个需求就是展示的图 ...
- GridView动态计算高度
// 动态加载GridView 高度 public static void setListViewHeightBasedOnChildren(MyGridView myGridView) { List ...
- java 中String与StringBuilder 效率
之前印象中string与stringbuilder操作时,如果多次改变string就使用stringbuilder,效率会提高: 今天实际遇到了问题,亲身经历过之后,这性能不是一般的影响啊:不是同一个 ...
- 12--C++_运算符重载
C++_运算符重载 什么是运算符的重载? 运算符与类结合,产生新的含义. 为什么要引入运算符重载? 作用:为了实现类的多态性(多态是指一个函数名有多种含义) 怎么实现运算符的重载? 方式:类的成员函数 ...
- 【sqli-labs】 less52 GET -Blind based -Order By Clause -numeric -Stacked injection(GET型基于盲注的整型Order By从句堆叠注入)
出错被关闭了 http://192.168.136.128/sqli-labs-master/Less-52/?sort=1' http://192.168.136.128/sqli-labs-mas ...
- groupbox
使用groupbox将radiobox 放入其中可以使组框中只选中一个
- CSS 选择器 知识点
<html> <head> <style type="text/css"> h1 > strong { /*子元素选择器 只选择自己 的子 ...