Java IO 练习Demo
Posted HardyDragon_CC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java IO 练习Demo相关的知识,希望对你有一定的参考价值。
package com.cwl;
import org.junit.Test;
import java.io.*;
import java.net.URL;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class iostreamTest
private static class A implements Serializable
private int x;
private String y;
A(int x, String y)
this.x = x;
this.y = y;
@Override
public String toString()
return "x = " + x + " " + "y = " + y;
@Test
public void network() throws IOException
URL url = new URL("http://www.baidu.com");
/* 字节流 */
InputStream is = url.openStream();
/* 字符流 */
InputStreamReader isr = new InputStreamReader(is, "utf-8");
/* 提供缓存功能 */
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null)
System.out.println(line);
br.close();
@Test
public void serializableTest() throws IOException, ClassNotFoundException
A a1 = new A(123, "abc");
String objectFile = "resource/a.txt";
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(objectFile));
objectOutputStream.writeObject(a1);
objectOutputStream.close();
ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(objectFile));
A a2 = (A) objectInputStream.readObject();
objectInputStream.close();
System.out.println(a2);
/**
* 递归地列出一个目录下所有文件
*
* @param dir
*/
public static void listAllFiles(File dir)
if (dir == null || !dir.exists())
return;
if (dir.isFile())
System.out.println(dir.getName());
return;
for (File file : dir.listFiles())
listAllFiles(file);
/**
* 复制文件内容
*
* @param src
* @param dist
* @throws IOException
*/
public static void copyFile(String src, String dist) throws IOException
FileInputStream in = new FileInputStream(src);
FileOutputStream out = new FileOutputStream(dist);
byte[] buffer = new byte[20 * 1024];
// read() 最多读取 buffer.length 个字节
// 返回的是实际读取的个数
// 返回 -1 的时候表示读到 eof,即文件尾
while (in.read(buffer, 0, buffer.length) != -1)
out.write(buffer);
in.close();
out.close();
public static void readFileContent(String filePath) throws IOException
FileReader fileReader = new FileReader(filePath);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line;
while ((line = bufferedReader.readLine()) != null)
System.out.println(line);
// 装饰者模式使得 BufferedReader 组合了一个 Reader 对象
// 在调用 BufferedReader 的 close() 方法时会去调用 Reader 的 close() 方法
// 因此只要一个 close() 调用即可
bufferedReader.close();
@Test
public void test() throws IOException
String s1 = "resource/a.txt";
String s2 = "resource/b.txt";
fastCopy(s1, s2);
/**
* 使用 NIO 快速复制文件的实例
*
* @param src
* @param dist
* @throws IOException
*/
public static void fastCopy(String src, String dist) throws IOException
/* 获得源文件的输入字节流 */
FileInputStream fin = new FileInputStream(src);
/* 获取输入字节流的文件通道 */
FileChannel fcin = fin.getChannel();
/* 获取目标文件的输出字节流 */
FileOutputStream fout = new FileOutputStream(dist);
/* 获取输出字节流的通道 */
FileChannel fcout = fout.getChannel();
/* 为缓冲区分配 1024 个字节 */
ByteBuffer buffer = ByteBuffer.allocateDirect(1024);
while (true)
/* 从输入通道中读取数据到缓冲区中 */
int r = fcin.read(buffer);
/* read() 返回 -1 表示 EOF */
if (r == -1)
break;
/* 切换读写 */
buffer.flip();
/* 把缓冲区的内容写入输出文件中 */
fcout.write(buffer);
/* 清空缓冲区 */
buffer.clear();
https://pdai.tech/md/java/io/java-io-basic-usage.html
以上是关于Java IO 练习Demo的主要内容,如果未能解决你的问题,请参考以下文章