package com.io;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedList; /**
* 缓冲读入文件
* @author Administrator
*
*/
public class BufferedInputFile { public static String read(String filename) throws IOException{
//reading input by lines:
BufferedReader in = new BufferedReader(new FileReader(filename));
String s;
StringBuilder sb= new StringBuilder(); while((s=in.readLine())!=null){
sb.append(s+"\n");
}
in.close();
return sb.toString();
} //test1,打开一个文本文件,每次读取一行内容,将每行作为一个string读入,并将该string对象存入linklist中,逆序打印linklist
public static void printLinkList(String fileName) throws IOException{
BufferedReader in = new BufferedReader(new FileReader("C:/Users/Administrator/Desktop/exec.txt"));
String string;
LinkedList<String> list = new LinkedList<String>();
while((string=in.readLine())!=null){
list.add(string);
}
/*for(int i=list.size();i>=0;i--){
System.out.println(list.get(i));
}*/
java.util.ListIterator<String> item = list.listIterator(list.size()); while(item.hasPrevious()){
System.out.println(item.previous());
} while(item.hasNext()){
System.out.println(item.next());
} /**
* 结果:
* 4-->4-->4:4:4:ghdgml11
3-->3-->3:3:3:flypiger
2-->2-->2:2:2:ghdgml11
1-->1-->1:1:1:flypiger
*/ } public static void main(String[] args) throws IOException {
//System.out.println(read("C:/Users/Administrator/Desktop/exec.txt"));
printLinkList("C:/Users/Administrator/Desktop/exec.txt");
}
}

不要问为什么,代码诠释一切

package com.io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringReader;
/**
* 基本的io
* @author Administrator
*
*/
public class BasicFileOutput { public static String file = "C:/Users/Administrator/Desktop/exec.txt";
public static String file1 = "C:/Users/Administrator/Desktop/exe.txt";
public static void main(String[] args) throws IOException {
//使用BufferedReader缓冲读入流,使用StringReader包装一个BufferedInputFile.read方法读取的字符串文件流
System.out.println(BufferedInputFile.read(file));
BufferedReader in = new BufferedReader(new StringReader(BufferedInputFile.read(file)));
//FileWriter可以写数据的对象,用BufferedWriter缓冲流包装提升性能,再用PrintWriter包装提升格式
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file1)));
int lineCount = 1;
String string;
while((string=in.readLine())!=null){
out.println(lineCount++ +": "+string);
}
out.flush();
out.close();
in.close();
System.out.println(BufferedInputFile.read(file1));
}
}
package com.io;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException; /**
* 读取二进制文件
* @author Administrator
*
*/
public class BinaryFile { public static byte[] read(File file) throws IOException{
BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(file));
byte[] data = new byte[inputStream.available()]; inputStream.read(data);
inputStream.close(); return data; }
public static byte[] read(String file) throws IOException{
return read(new File(file).getAbsoluteFile());
}
}
package com.io;

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
/**
* 格式化的内存输出
* @author Administrator
*
*/
public class FormattedMemoryInput { public static void main(String[] args) throws IOException {
DataInputStream in= new DataInputStream(new ByteArrayInputStream(BufferedInputFile.read("C:/Users/Administrator/Desktop/exec.txt").getBytes()));
//available用来查询还有多少可供存取的字符
while(in.available()!=0){
System.out.println(in.readByte());
}
}
}
package com.io;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream; /**
* 用GZIP进行压缩,有空总结常用流的包装
* @author Administrator
*
*/
public class GZIPcompress {
/**压缩/解压缩 常用流,可根据实例替换
* ZipOutputStream
* ZipInputStream
* GZipOutputStream
* GZipInputStream
* @param args
* @throws IOException
*/ public static void main(String[] args) throws IOException {
if(args.length==0){
System.out.println(
"Usage: \nGZIPcompress file\n"+
"\tUsers GZIP compression to compress "+
"the file to test.gz"
);
BufferedReader in = new BufferedReader(new FileReader("C:/Users/Administrator/Desktop/exec.txt"));
//后缀名可以是.gz .gzip.zip
BufferedOutputStream out= new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream("C:/Users/Administrator/Desktop/test.gz")));
System.out.println("Writing file*********************************"); int c;
while((c=in.read())!=-1){
out.write(c);
}
out.close();
in.close();
System.out.println("reading file*********************************"); BufferedReader in2 = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream("C:/Users/Administrator/Desktop/test.gz"))));
String string;
while((string=in2.readLine())!=null){
System.out.println(string);
}
}
}
}
package com.io;

import java.io.IOException;
import java.io.StringReader; /**
* 从内存中读取,没什么好说的
* @author Administrator
*
*/
public class MemoryInput { public static void main(String[] args) throws IOException {
StringReader in = new StringReader(BufferedInputFile.read("C:/Users/Administrator/Desktop/exec.txt"));
//SringReader读取的int类型的,所以要转换成char打印
int c;
while((c=in.read())!=-1){
System.out.println((char)c);
}
}
}

Java IO总结之缓冲读入文件的更多相关文章

  1. java - >IO流_缓冲流(高效流)

    缓冲流(高效流) 在我们学习字节流与字符流的时候,大家都进行过读取文件中数据的操作,读取数据量大的文件时,读取的速度会很慢,很影响我们程序的效率,那么,我想提高速度,怎么办? Java中提高了一套缓冲 ...

  2. Java IO流之缓冲流

    一.缓冲流简介 二.BufferedInputStream 三.其他三种缓冲流

  3. java IO流 对文件操作的代码集合

    Io流 按照分类 有两种分类 流向方向: 有输入流和输出流 按照操作类型有:字节流和字符流 按照流向方向 字节流的一些操作 //读文件 FileInputStream fis = new FileIn ...

  4. Java IO之处理流

    一.处理流: 增强功能,提供性能,在节点流之上. 二.节点流与处理流的关系 节点流(字节流.字符流)处于IO操作的第一线,所有操作必须通过它们进行: 处理流可以对其他流进行处理(提高效率或操作灵活性) ...

  5. JAVA Io 缓冲输入输出流

    java中提供带缓冲的输入输出流.在打开文件进行写入或读取操作时,都会加上缓冲,提高了IO读写性能. 1. BufferedInputStream 缓冲输入流 2. BufferedOutputStr ...

  6. Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream

    Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/ ...

  7. Java IO流之【缓冲流和文件流复制文件对比】

    与文件流相比,缓冲流复制文件更快 代码: package Homework; import java.io.BufferedOutputStream; import java.io.File; imp ...

  8. Java IO学习笔记(二)缓冲流

    处理流:包在别的流上的流,可以对被包的流进行处理或者提供被包的流不具备的方法. 一.缓冲流:套接在相应的节点流之上,带有缓冲区,对读写的数据提供了缓冲的功能,提高读写效率,同时增加一些新的方法.可以减 ...

  9. java IO之 File类+字节流 (输入输出 缓冲流 异常处理)

    1. File类

随机推荐

  1. 网页中的超链接<a>标签

    格式: <a href="目标网址" title="鼠标滑过显示的文本">链接显示的文本</a> 注意:为文本加入<a>标签 ...

  2. TCP协议中的三次握手和四次挥手

    转自: http://blog.csdn.net/whuslei/article/details/6667471/ 建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示:

  3. Maven-002-eclipse 插件安装及实例

    因为平常编码的时候,习惯了使用 eclipse 进行编码,因而需要将 eclipse 安装 maven 的插件,安装步骤如下所示: 一.安装 选择菜单: help -> Install New  ...

  4. Selenium2学习-018-WebUI自动化实战实例-016-自动化脚本编写过程中的登录验证码问题

    日常的 Web 网站开发的过程中,为提升登录安全或防止用户通过脚本进行黄牛操作(宇宙最贵铁皮天朝魔都的机动车牌照竞拍中),很多网站在登录的时候,添加了验证码验证,而且验证码的实现越来越复杂,对其进行脚 ...

  5. TCP/IP和HTTP的举例理解

    闲暇中逛博客园,看到TCP/IP和HTTP关键词,就突然想深刻理解他们(以前真的是只知皮毛),于是看了关于TCP/IP和HTTP的博文,就有了此文. 首先要引出开放系统互连参考模型(OSI:Open ...

  6. 【转】Android Canvas绘图详解(图文)

    转自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1212/703.html Android Canvas绘图详解(图文) 泡 ...

  7. logback详细配置(三)

    转自:http://blog.csdn.net/haidage/article/details/6794540 <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NE ...

  8. Mybatis的分页插件PageHelper

    Mybatis的分页插件PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper  文档地址:http://git.oschina. ...

  9. TortoiseGit 的使用

    日常用法 (1) 创建新库 在文件夹中按右键, 选择Git Create repository here 就可以创建库了. 在出现的窗口中, 不勾选选项, 直接按OK 在目录中就会出现一个名为.git ...

  10. 使用for打印小九九

    使用shell的for语法打印小九九 #!/bin/bash `;do `;do if [ $a -ge $b ];then echo -en "$a x $b = $(expr $a \* ...