文件 I/O字节流
输入字节流:
import java.io.*;
public class test_main {
public static void main(String[] args) {
int n=-1;
byte []a = new byte[100];
try {
File f = new File("Example10_4.java");
/*File类文件和目录路径名的抽象表示
*File(String pathname)通过将给定的路径名字符串转换
为抽象路径名来创建新的 File实例。*/
InputStream in = new FileInputStream(f);
/******************************************
*InputStream 抽象类是表示输入字节流所有类的超类
*FileInputStream 用于读取诸如图像数据的原始字节流
*FileInputStream(File file)通过打开与实际文件
的连接创建一个 FileInputStream ,该文件由文件系统
中的 File对象 file命名。
******************************************/
while((n=in.read(a,0,100))!=-1){
/* int read(byte []b,int off,int len)
* b - 读取数据的缓冲区,off - 写入数据的数组 b中的起始偏移量。
* len - 要读取的最大字节数。
* 从输入流读取len字节的
* 数据到一个字节数组。实际读取的字节数作为整数返回。
* 该方法阻塞直到输入数据可用,检测到文件结束或抛出异常。
* 如果len为零,则不会读取字节并返回0;
* 否则,尝试读取至少一个字节。 如果没有字节可用,因为流是文件的-1则返
* 回值-1 ; 否则,读取至少一个字节并存储到b 。
*
* */
String s = new String(a,0,n);
// String(byte[] bytes, int offset, int length)
// bytes - 要解码为字符的字节
// offset - 要解码的第一个字节的索引
// length - 要解码的字节数
// 通过使用平台的默认字符集解码指定的字节子阵列来构造新的String。
// 新的String的长度是字符集的函数,因此可能不等于子数组的长度。
// 指定字节在默认字符集中无效时,此构造函数的行为是未指定的。
System.out.print(s);
}
in.close();
/*public void close()throws IOException
关闭此输入流并释放与流相关联的任何系统资源。
该close的方法InputStream什么都不做。
IOException异常类
表示发生某种类型的I / O异常。
此类是由失败或中断的I / O操作产生的一般异常类。 */
}
catch(IOException e) {
System.out.println("File read Error"+e);
}
}
}
输出字节流:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class test_main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
byte[] a="新年快乐".getBytes();
byte[] b="Happy New Year".getBytes();
/* 使用平台的默认字符集将该String编码为一系列字节,
将结果存储到新的字节数组。*/
File file = new File("a.txt");
/*文件和目录路径名的抽象表示
通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
如果给定的字符串是空字符串,则结果是空的抽象路径名。
参数-pathname-路径名字符串
异常NullPointerException-if patchname==null*/
System.out.println(file.getAbsolutePath());
try {
OutputStream out = new FileOutputStream(file);
/*OutputStream这个抽象类是表示字节输出流的所有类的超类
FileOutputStream文件输出流是用于将数据写入File或
FileDescriptor的输出流。用于写入诸如图像数据的原始
字节流。*/
System.out.println(file.getName()+"的大小:"
+file.length()+"字节");
// getName返回此抽象路径名标识的文件或目录的名称
out.write(a);
// 将b.lenth字节从指定的字节数组写入此文件输出流
out.close();
// 关闭此文件输出流并释放与此流相关联的任何系统资源
out = new FileOutputStream(file,true);
/*创建文件输出流以写入由指定的File对象表示的文件
如果第二个参数为true,则字节将写入文件的末尾而
不是开头。*/
System.out.println(file.getName()+"的大小:"
+file.length()+"字节");
out.write(b,0,b.length);
/*将len字节从指定的字节数组开始,从偏移量off开始写入此
文件输出流*/
System.out.println(file.getName()+"的大小:"
+file.length()+"字节");
out.close();
}
catch(IOException e) {
System.out.println("Error "+e);
}
System.out.println(file.getAbsolutePath());
}
}
文件 I/O字节流的更多相关文章
- java的文件流:字节流(FileInputStream、FileOutputStream)和字符流(FileReader、FileWriter)。
java的输入输出建立在4个抽象类的基础上:InputStream.OutputStream.Reader.Writer.InputSream和OutputStream被设计成字节流类,而Reader ...
- Java文件与io——字节流
FileOutputStream用于写入诸如图像数据之类的原始字节的流 字节输出流:OutputStream 此抽象类表示输出字节流的所有类的超类.(写) 字节输入流:InputStream(读) p ...
- java 20 -10 字节流四种方式复制mp3文件,测试效率
电脑太渣,好慢..反正速率是: 高效字节流一次读写一个字节数组 > 基本字节流一次读写一个字节数组 > 高效字节流一次读写一个字节 > 基本字节流一次读写一个字节 前两个远远快过后面 ...
- java使用字节流和字符流实现文件复制
大家在Java开发中都会遇到文件复制的文件,众所周知,需要通过文件输入输出流实现. 那究竟该怎么做那,话不多说,直接上代码: 一,使用字节流复制文件 public class FileByteCopy ...
- 如何检测或判断一个文件或字节流(无BOM)是什么编码类型
前言: 昨天,在文章:终于等到你:CYQ.Data V5系列 (ORM数据层,支持.NET Core)最新版本开源了 中, 不小心看到一条留言: 然后就去该地址看了一下,这一看,顺带折腾了一天. 今天 ...
- Java中的字节流,字符流,字节缓冲区,字符缓冲区复制文件
一:创建方式 1.建立输入(读)对象,并绑定数据源 2.建立输出(写)对象,并绑定目的地 3.将读到的内容遍历出来,然后在通过字符或者字节写入 4.资源访问过后关闭,先创建的后关闭,后创建的先关闭 ...
- IO之4种字节流拷贝文件方式对比
public class CopyMp4Demo { public static void main(String[] args) throws IOException { long start = ...
- 如何理解“Unix 里一切都是文件”这句话-在 UNIX 中,一切都是字节流
UNIX 操作系统的设计.用户界面.文化和演变都是建立在它的一套统一的想法和概念上.其中最重要的一点可能是“一切皆文件”,而这个概念被认为是 UNIX 的灵魂之一. 这一关键设计原则提供了一个统一的范 ...
- java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...
随机推荐
- check_mk的性能案例
http://wiki.lustre.org/Check_MK/Graphite/Graphios_Setup_Guide Dell PowerEdge R515 2x 8-Core AMD Opte ...
- #单元测试#以karma+mocha+chai 为测试框架的Vue webpack项目(一)
目标: 为已有的vue项目搭建 karma+mocha+chai 测试框架 编写组件测试脚本 测试运行通过 抽出共通 一.初始化项目 新建项目文件夹并克隆要测试的已有项目 webAdmin-web 转 ...
- Spark天堂之门解密
本课主题 什么是 Spark 的天堂之门 Spark 天堂之门到底在那里 Spark 天堂之门源码鉴赏 引言 Spark 天堂之门就是SparkContext,这篇文章会从 SparkContext ...
- Perl 基础笔记: 使用 cpanm 安装 Perl 模块
cpanm 其实只是一个可执行文件而已.将它下载到 bin 目录,然后添加执行权限就可以用了. $ sudo wget http://xrl.us/cpanm -O /usr/bin/cpanm; s ...
- OC 枚举
void test() { // 定义一种枚举类型 enum Season {spring, summer, autumn, winter}; // 定义一个枚举变量s enum Season s = ...
- 深搜(DFS),Image Perimeters
题目链接:http://poj.org/problem?id=1111 解题报告: 1.这里深搜有一点要注意,对角线上的点,如果为'.',则total不应该增加,因为这不是他的边长. #include ...
- 什么是React中的组件
组件就是页面上的一部分.如图,左边是一个网页.右边是对应的一个组件图.我们可以把一个大的网页拆分成很多小的部分.比如标题部分,对应一个组件,就是标题组件.搜索部分,对应的组件就是搜索组件.而这个搜索组 ...
- POJ 2365【YY水题】
题目链接:POJ 2365 Rope Rope Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7488 Accepted ...
- 【luogu P1268 树的重量】 题解
题目链接:https://www.luogu.org/problemnew/show/P1268 给定所有点间的最短路求原图所有路径和 形如: 我们需要计算红边+绿边 绿边 = (红边+蓝边+紫边)/ ...
- Javascript 基础汇总
1 javascript字符串 属性:.length 计算字符串长度 转义字符 \ \n 换行 \r 回车 字符串断行 需要使用反斜杠 \ 2 字符串方法 charAt(n) 返回指定索 ...