`

Java IO 读文件的各种方法总结

    博客分类:
  • Java
阅读更多
IO分为字节流和字符流,字符就是简单的字符串存储,从理伦上讲,在内存中所有的数据都是二进制,是一个字节一个字节的序列,所以字节流可以存储像图片、图像等文件。现在有一个文件,分别用字节流和字符流来实现。

1. 字符读取(一次读若干个数据)

FileReader reader = new FileReader(file);
char buf[] = new char[1024];
int ch;
while ((ch = reader.read(buf)) != -1) {
	buffer.append(buf);
	buf = new char[1024]; // 一定要清掉啊
}
System.out.println(buffer.toString());


2. 字符读取(一次读一个字符)

FileReader reader = new FileReader(file);
int ch;
while ((ch = reader.read()) != -1) {
	buffer.append((char) ch);
}
System.out.println(buffer.toString());


3. 字符读取(一行一行地读)
BufferedReader reader = null;
String data;
InputStreamReader isr = new InputStreamReader(
				new FileInputStream(file), "GB2312");
reader = new BufferedReader(isr);
while ((data = reader.readLine()) != null) {
	buffer.append(data);
}
reader.close();
System.out.println(buffer);



4. 字节读取(一次读完)

FileInputStream in = new FileInputStream(file);
int size = in.available();
byte[] data = new byte[size];
in.read(data);
in.close();
String str = new String(data, "GB2312");
System.out.println(str);


5. 字节读取(一次读一个字节)

FileInputStream in = new FileInputStream(file);
int data;
while ((data = in.read()) != -1) {
	buffer.append((char) data);
}
System.out.println(buffer.toString());


6. 字节读取(一次读若干个字节)

FileInputStream in = new FileInputStream(file);
byte buf[] = new byte[1024];
while (in.read(buf) != -1) {
	buffer.append(new String(buf, "GB2312"));
	buf = new byte[1024];
}
System.out.println(buffer.toString());
分享到:
评论

相关推荐

    javaIO字节流读取文件方式总结共4页.pdf.zip

    javaIO字节流读取文件方式总结共4页.pdf.zip

    java IO流总结.md

    java I/O流的总结 1.操作数据单位:字节流、字符流 对于文本文件(.txt,.java,.c,.cpp),使用字符流处理 对于非文本文件(.jpg,.mp3,.mp4,.avi,.doc,.ppt,...),使用字节流处理 2.数据的流向:输入流、输出流 ...

    java IO章节的总结

    以上能够直接对数据进行读和写的流叫节点流,但是直接用这些来操作是比较麻烦的,而且一个字节一个字节的对文件处理,对硬盘的读取和存入对硬盘的损伤是很大的,因此需要对这些节点流进行包装,即外套一些处理流来...

    Java之IO流学习总结

    File类保存文件或目录的各种元数据信息,包括文件名、文件长度、最后修改时间、是否可读、获取当前文件的路径名,判断指定文件是否存在、获得当前目录中的文件列表,创建、删除文件和目录等方法。 9....

    IO流pdf宝典

    JAVAIO流总结宝典,分享给大家,总结较为全面

    java 面试题 总结

    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap...

    java 编程入门思考

    10.7 Java 1.1的IO流 10.7.1 数据的发起与接收 10.7.2 修改数据流的行为 10.7.3 未改变的类 10.7.4 一个例子 10.7.5 重定向标准IO 10.8 压缩 10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档...

    Java多线程读取大文件

     昨天下午朋友跟我聊起,他说有个需求,需要把上G的txt文件读取写入到数据库。用普通的io结果自然是OOM了,所以果断用NIO技术。为了提高速度,自然还得用上多线程技术。  接下来介绍一下实现思路以及相关的知识...

    Java-初学IO流总结

    Java当中的流大概的分为输入流和输出流两类,输入流,就是从不同的数据源当中读取数据,数据源可以是磁盘文件、内存数据等。 输出流就是可以将数据写入到不同的数据宿当中。 Java中,对于不同的数据源,可以使用...

    Java初学者入门教学

    10.7 Java 1.1的IO流 10.7.1 数据的发起与接收 10.7.2 修改数据流的行为 10.7.3 未改变的类 10.7.4 一个例子 10.7.5 重定向标准IO 10.8 压缩 10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档...

    java联想(中文)

    10.7 Java 1.1的IO流 10.7.1 数据的发起与接收 10.7.2 修改数据流的行为 10.7.3 未改变的类 10.7.4 一个例子 10.7.5 重定向标准IO 10.8 压缩 10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档...

    JAVA_Thinking in Java

    10.7 Java 1.1的IO流 10.7.1 数据的发起与接收 10.7.2 修改数据流的行为 10.7.3 未改变的类 10.7.4 一个例子 10.7.5 重定向标准IO 10.8 压缩 10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档...

    Thinking in Java简体中文(全)

    10.7 Java 1.1的IO流 10.7.1 数据的发起与接收 10.7.2 修改数据流的行为 10.7.3 未改变的类 10.7.4 一个例子 10.7.5 重定向标准IO 10.8 压缩 10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档...

    Thinking in Java 中文第四版+习题答案

    第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向...

    Java 2平台安全技术-结构,API设计和实现

    7.5.4 实例4:读取包含证书的文件 135 7.6 标准名 136 7.6.1 消息摘要算法 136 7.6.2 密钥和参数算法 136 7.6.3 数字签名算法 137 7.6.4 随机数产生算法 137 7.6.5 证书类型 137 7.6.6 密钥库类型 137 7.7 算法 137 ...

    JAVA基础知识点,J2SE部分内容

    在学习过程中也要和集合一样,首先了解JAVA的整个IO包的结构,然后在具体的类的学习中总结常用通用方法,找到相同的规律减少学习时间和难度。 1. 什么是IO? I:input 输入 通常做读取操作(将不同数据源的数据读入...

    JAVA 2平台安全技术-结构,API设计和实现

    7.5.4 实例4:读取包含证书的文件 135 7.6 标准名 136 7.6.1 消息摘要算法 136 7.6.2 密钥和参数算法 136 7.6.3 数字签名算法 137 7.6.4 随机数产生算法 137 7.6.5 证书类型 137 7.6.6 密钥库类型 137 7.7 算法 137 ...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm ------------------------------------------------- 本教程由yyc,spirit整理 ------------------------------------------------- “Thinking in Java...

    Think in Java(中文版)chm格式

    10.7 Java 1.1的IO流 10.7.1 数据的发起与接收 10.7.2 修改数据流的行为 10.7.3 未改变的类 10.7.4 一个例子 10.7.5 重定向标准IO 10.8 压缩 10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3...

    Thinking in Java(中文版 由yyc,spirit整理).chm

    10.7 Java 1.1的IO流 10.7.1 数据的发起与接收 10.7.2 修改数据流的行为 10.7.3 未改变的类 10.7.4 一个例子 10.7.5 重定向标准IO 10.8 压缩 10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档...

Global site tag (gtag.js) - Google Analytics