`
wenhai_zhang
  • 浏览: 186252 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java IO操作实践

    博客分类:
  • java
阅读更多
package com.test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.nio.channels.FileChannel;

import sun.nio.ch.FileChannelImpl;
/**
* 文件读写操作示例
* @author zwh
*
*/
public class EncodingTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String filePath = "conf/test.xml";
String newPath = "d:\\test.xml";
charStream2(filePath, newPath);
}
private static void fileChannel(String fromPath, String toPath) {

}
/**
* 使用缓存字符流BufferedReader/BufferedWriter进行文件读写操作
* 需要注意的是,使用readerLine()时,需要手动添加行结束符\n\r(windows)或\n(Linux\Unix)
* @param fromPath
* @param toPath
*/
private static void charStream2(String fromPath, String toPath) {
BufferedReader reader = null;
BufferedWriter writer = null;

try {
reader = new BufferedReader(new FileReader(fromPath));
writer = new BufferedWriter(new FileWriter(toPath));
StringBuilder sb = new StringBuilder();
String str = new String();
while((str = reader.readLine()) != null)
{
sb.append(str + "\n\r");
}
writer.write(sb.toString());
writer.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 使用字符流操作文件
* 由于不能指定编码格式,默认拷贝无中文乱码
* @param fromPath
* @param toPath
*/
private static void charStream1(String fromPath, String toPath) {
Reader reader = null;
Writer writer = null;

try {
reader = new FileReader(fromPath);
writer = new FileWriter(toPath);
StringBuilder sb = new StringBuilder();
char[] buffer = new char[1024];
while (reader.read(buffer) != -1) {
sb.append(new String(buffer).trim());
}
writer.write(sb.toString());
writer.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 使用字符流InputStreamReader/OutputStreamWriter进行文件读写操作
* 1,Reader/Writer均不指定编码格式时,中文无乱码
* 2,为Writer指定编码格式时,需指定为GBK,否则为乱码(可能跟当前操作系统有关)
* 3,为Reader指定编码格式时,同样只有指定为GBK时才不出现乱码
* 4,分别为Reader/Writer指定编码格式时,可使用utf-8或gbk,当必须成对,否则为乱码
* @param fromPath
* @param toPath
*/
private static void charStream(String fromPath, String toPath) {
Reader reader = null;
Writer writer = null;

try {
reader = new InputStreamReader(new FileInputStream(fromPath),"gbk");
writer = new OutputStreamWriter(new FileOutputStream(toPath),"gbk");
StringBuilder sb = new StringBuilder();
char[] buffer = new char[1024];
while (reader.read(buffer) != -1) {
sb.append(new String(buffer).trim());
}
writer.write(sb.toString());
writer.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 使用字节流FileInputStream/FileOutputStream进行文件读写操作
* 读取文件之后,中文为乱码
* @param fromPath
* @param toPath
*/
private static void byteStream(String fromPath, String toPath) {
InputStream in = null;
OutputStream out = null;
byte[] buffer = new byte[1024];
try {
in = new FileInputStream(fromPath);
out = new FileOutputStream(toPath);
while (in.read(buffer) != -1) {
// sb.append(new String(buffer,"utf-8"));
out.write(buffer);
}
} catch (IOException e) {
e.printStackTrace();
}
}

}
分享到:
评论

相关推荐

    Java IO应届生培训讲义

    综上所述,Java IO培训讲义通过系统介绍Java IO的基本概念和模型,帮助应届生理解并掌握Java IO类库的使用,特别是在了解和应用不同IO模型时的注意事项和实践方法。通过这份讲义,初学者能更好地理解和编写涉及Java ...

    Java io的基本操作很全面的代码呀

    Java IO(Input/Output)是Java编程中非常重要的一个领域,它主要用于...这个"Java io的基本操作很全面的代码"项目无疑是学习和实践Java IO的宝贵资源,可以帮助开发者深入理解和熟练运用Java IO机制,提升开发效率。

    javaIO操作入门

    本教程旨在为初学者提供Java IO操作的基础知识,帮助他们入门并理解这一核心概念。 Java IO库包含了大量类和接口,主要分布在java.io包中,它们提供了对输入输出流的支持。输入流用于从源获取数据,而输出流则用于...

    java的io操作源代码

    本代码库包含了Java进行基本IO操作的源代码,涵盖了文件的复制、删除、新建和移动等功能,非常适合初学者理解和实践。 首先,我们来探讨一下Java IO操作的基本概念。在Java中,IO操作基于流(Stream)的概念,流是...

    Java IO 使用例

    在“JavaIODemo”这个示例中,可能会包含以上提到的一些或全部Java IO操作的代码实例,通过这些实例,我们可以学习如何在实际项目中应用Java IO API。实践是掌握Java IO的最佳方式,通过对这些示例的分析和运行,...

    Java IO 编程集合

    8. IOException:在进行IO操作时,可能会遇到各种错误,如文件不存在、权限不足等,这时会抛出IOException。因此,进行IO编程时,一定要妥善处理异常。 九、流的关闭 9. 流的关闭:每次完成IO操作后,必须关闭打开...

    java io流的实践案例大全

    Java IO流是Java平台中用于处理输入输出操作的重要机制,它允许程序与各种数据源(如文件、设备、网络)进行交互。在这个“java io流的实践案例大全”中,你将找到一系列全面且深入的示例,帮助你理解和掌握Java IO...

    java io.pdf

    Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了丰富的类库,允许程序员在程序之间传输数据,包括从文件、网络、内存缓冲区到其他程序或系统组件。Java IO API是Java平台的...

    java io 系列操作代码练习 Java学习资料

    "jsd2207-se-master"可能是一个Java学习项目或课程的代码库,里面可能包含了各种Java IO操作的实例代码,用于实践和学习。通过分析和运行这些代码,你可以加深对Java IO的理解,并提升实际操作能力。 总结,Java IO...

    Java IO与NIO:深入理解与实践指南

    IO适用于简单的I/O操作,而NIO则适合于需要高性能和高并发的应用。了解这两种I/O处理方式的区别和特点,可以帮助开发者根据具体的应用需求选择合适的I/O模型。随着Java语言的发展,NIO也在不断地扩展和优化,为...

    java小项目练习IO实现

    这样可以方便地进行增删查改操作,并能与其他IO操作结合,实现数据的存取。 总之,这个Java小项目“Olymplic Games Project(IO版)”是一个很好的实践平台,它涵盖了Java IO流的使用,面向对象的设计原则,以及集合...

    图书管理系统(java IO操作)

    《图书管理系统:基于Java IO操作的实现》 在IT领域,图书管理系统是一个常见的应用场景,它主要用于图书馆或书店的日常运营,如图书的入库、出库、借阅、归还等管理。本系统采用三层架构设计,分别是表现层、业务...

    java io流 案例

    此外,掌握异常处理策略也是关键,因为IO操作常常涉及到文件和网络,这两者都容易出现错误。 总的来说,Java IO流是Java程序进行输入输出操作的基础,无论是读取配置文件、处理用户输入、还是与其他系统交换数据,...

    JAVA IO流技术

    5. 节点流与处理流的关系:节点流位于IO操作的第一线,所有直接的数据传输都通过它们。处理流则可以包裹节点流,提供额外的功能,如缓冲、格式转换等,从而增强程序的效率和灵活性。 6. Java IO流类的体系: - 四...

    javaIO流知识大总结

    Java IO系统提供了丰富的类库,使得开发者能够方便地处理输入和输出操作。在这个大总结中,我们将深入探讨Java IO流的基本概念、分类、常用类以及实践应用。 1. **基本概念** - **流(Stream)**:在Java中,流是...

    JavaIO文件操作之写入分页操作

    在这个场景下,我们关注的是Java IO在处理文件时的写入和读取操作,特别是如何进行分页操作以及如何防止出现乱码问题。下面我们将深入探讨这些知识点。 首先,让我们了解一下Java中的IO流。Java IO流分为字符流和...

    java IO 课件

    6. **Example8.java**:可能涉及到缓冲区的概念,比如`BufferedInputStream`和`BufferedOutputStream`,通过缓冲提高IO操作效率。 7. **Example9_9.java**:可能讲解了对象序列化和反序列化,使用`...

    java IO流+socket源码 实现简单文本传输

    Java IO流和Socket是Java编程语言中用于处理输入输出和网络通信的重要概念。在这个示例中,我们将深入探讨如何利用Java ...对于初学者来说,理解这些基础概念并实践编写相关代码,将有助于深入掌握Java的网络编程能力。

    javaIO案例

    在这个"javaIO案例"中,我们关注的是如何使用核心的Java IO类,如`InputStream`、`OutputStream`、`FileInputStream`、`FileOutputStream`以及`PipedInputStream`和`PipedOutputStream`等管道流。这些类构成了Java ...

    Java-Io流,练习

    为了提高IO操作的效率,Java提供了缓冲流,如`BufferedInputStream`和`BufferedOutputStream`,以及`BufferedReader`和`BufferedWriter`。这些类在内部维护了一个缓冲区,可以减少实际的物理I/O次数。 五、转换流...

Global site tag (gtag.js) - Google Analytics