`

File Demo

 
阅读更多
package org.springside.examples.showcase.utilities.io;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import junit.framework.Assert;

import org.apache.commons.io.FileSystemUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.input.ReaderInputStream;
import org.apache.commons.io.output.WriterOutputStream;
import org.junit.Test;
import org.springside.modules.utils.Exceptions;

import com.google.common.base.Charsets;

public class IODemo {

	@Test
	public void workWithFileContent() {
		File file = new File("woop.txt");
		try {
			// text -> file
			FileUtils.write(file, "Hey sailor!\nHaha\n", "UTF-8");

			// file -> outputstream
			System.out.println("copy File to outputstream:");
			FileUtils.copyFile(file, System.out);

			// file -> string
			System.out.println("File to String:");
			System.out.println(FileUtils.readFileToString(file, "UTF-8"));

			// file -> list<string>
			System.out.println("File to List<String>:");
			List<String> lines = FileUtils.readLines(file, "UTF-8");
			for (String string : lines) {
				System.out.println(string);
			}
		} catch (IOException e) {
			Exceptions.unchecked(e);
		}
	}

	/*
	 * Input/OutputStream
	 */
	@Test
	public void workWithStream() {
		InputStream in = null;
		try {
			String content = "Stream testing";

			// String - > InputStream
			in = IOUtils.toInputStream(content, "UTF-8");

			// String - > OutputStream
			System.out.println("String to OutputStram:");
			IOUtils.write(content, System.out, "UTF-8");

			// InputStream/Reader -> String
			System.out.println("\nInputStram to String:");
			System.out.println(IOUtils.toString(in, "UTF-8"));

			// InputStream/Reader -> OutputStream/Writer
			InputStream in2 = IOUtils.toInputStream(content);
			System.out.println("InputStram to OutputStream:");
			IOUtils.copy(in2, System.out);

			// InputStream ->Reader
			InputStreamReader reader = new InputStreamReader(in, Charsets.UTF_8);
			// Reader->InputStream
			ReaderInputStream in3 = new ReaderInputStream(reader,
					Charsets.UTF_8);

			// OutputStream ->Writer
			OutputStreamWriter writer = new OutputStreamWriter(System.out,
					Charsets.UTF_8);
			// Writer->OutputStream
			WriterOutputStream out2 = new WriterOutputStream(writer,
					Charsets.UTF_8);

			// 收集Writer的内容到String.
			StringWriter sw = new StringWriter();
			sw.write("\nI am String writer");
			System.out.println(sw.toString());

		} catch (IOException e) {
			Exceptions.unchecked(e);
		} finally {
			// 安静的关闭Stream
			IOUtils.closeQuietly(in);

		}
	}

	@Test
	public void workWithFileAndDir() {
		try {
			long size = FileSystemUtils.freeSpaceKb("C:");
			System.out.println("c盘空闲大小:" + (size / 1024 / 1024) + "g");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	@Test
	public void copyFile() {

		File srcFile = new File("c:\\test.txt");
		File destFile = new File("d:\\test.txt");
		try {
			FileUtils.deleteQuietly(destFile);
			if (!srcFile.exists())
				srcFile.createNewFile();
			FileUtils.copyFile(srcFile, destFile);
			Assert.assertTrue(destFile.exists());
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	@Test
	public void writerFile() {
		File f = new File("c:\\test1.txt");
		try {
			List<String> list = new ArrayList<String>();
			list.add("test1");
			list.add("1");
			FileUtils.writeLines(f, list); // 写集合
			// FileUtils.writeStringToFile(f, data); //写字符串
			System.out.println("写成功");
		} catch (IOException ex) {
			ex.printStackTrace();
		}
	}

	@Test
	public void testFileURL() {
		File f = new File("c:\\test2.txt");
		URL url;
		try {
			url = new URL("http://www.iteye.com/topic/575996");
			FileUtils.copyURLToFile(url, f);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	@Test
	public void testJDKFile() {
		File f = new File("c:\\test2.txt");
		try {
			System.out.println(f.getCanonicalFile());
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
分享到:
评论

相关推荐

    Memory Mapped File Demo in WinCE

    总结来说,"Memory Mapped File Demo in WinCE"是一个关于如何在Windows CE系统中利用内存映射文件进行进程间数据交换的实践案例。开发者需要理解并掌握创建映射对象、获取视图、数据交换、同步保护以及释放资源等...

    java upload file demo

    `java upload file demo` 涉及到的关键知识点主要包括以下几个方面: 1. **Servlet**:Java Web开发中的核心组件,用于处理HTTP请求和响应。文件上传通常发生在HTTP POST请求中,Servlet是接收和处理这些请求的主要...

    上课老师写的file demo

    首先,我们来讨论"file demo"这个标签。这通常指的是一个关于文件操作的示例代码库,可能包含了各种语言(如Python、C++、Java等)中处理文件的方法。文件操作包括打开文件、读取文件、写入文件、关闭文件以及追加...

    PDF sample file demo

    根据给定的信息,“PDF sample file demo”是一份关于最简单的PDF文件格式的示例文档,主要涉及PDF格式的基础知识。接下来将围绕这份资料的核心内容展开详细的解析与介绍,旨在为读者提供一个全面深入的理解。 ### ...

    Play PPTX file demo

    "Play PPTX file demo"这个标题暗示我们将探讨一个演示如何播放或展示PPTX文件的代码实例。 首先,我们需要了解PPTX文件的结构。PPTX实际上是基于Open Packaging Conventions(OPC)标准的ZIP文件,包含了多个XML...

    convert file demo

    "Convert File Demo" 提供了一个示例,展示了如何实现这一功能。在这个项目中,我们关注的是文件的上传与下载,这是任何云存储服务或在线协作平台的核心组成部分。 首先,让我们详细探讨文件转换的概念。文件转换是...

    custom config file demo in ASP.NET

    if you wan to use your custome config settings you can inherit the IConfigurationSectionHandler if your .net...if you want to store you config settings in another file,YOU CAN DOWNLOAD THIS DEMO PROJECT

    FileProvider使用demo

    通过以上步骤,你可以实现一个简单的`FileProvider` demo,如`FileProviderDemo`所示,适配Android 7.0,实现系统拍照和裁剪图片的功能。在实际应用中,还可以根据需求扩展,如支持多种类型的文件,或者在多线程环境...

    此demo有bug,请下载最新的文件上传的案例

    在描述中提到的"bug"可能是指在该特定的Demo版本中存在一些错误或缺陷,这可能会影响文件上传的功能,或者导致安全性、性能或其他问题。修复这些bug对于提供稳定和安全的服务至关重要。因此,建议用户下载最新版本的...

    file_demo.rar_DEMO_掌机源码

    【标题】"file_demo.rar_DEMO_掌机源码"是一个关于掌上游戏机(掌机)开发的示例代码库,主要以C语言编写。这个压缩包包含了一个名为"file_demo.c"的源代码文件和一个名为"www.pudn.com.txt"的文本文件。通过对这两...

    Senfore_DragDrop_v4.1

    readme.txt file which briefly describes what the demo does and what features it uses. The demos should be run in the order in which they are listed in the supplied project group. Even if you have ...

    BootStrap file upload demo

    在"BootStrap file upload"中,主要涉及以下几个核心知识点: 1. **Bootstrap样式库**:Bootstrap提供了一系列预先设计的CSS类,可以快速创建出一致的布局、排版和组件样式。在文件上传中,这些样式用于美化上传...

    File_Transfer_Demo.rar_DEMO_transfer

    file transfer demo.socket

    C# 文件管理器filebrowser demo

    【C# 文件管理器filebrowser demo】是一款基于C#编程语言开发的文件管理应用程序,它模仿了操作系统自带的文件浏览器功能,并且具有高度的实用性和兼容性。此应用利用了Windows API中的`Shell32`库,使得用户界面与...

    上课老师写的filedemo

    "File Demo"通常指的是一个示例程序,用于演示如何在各种编程语言中处理文件,包括读取、写入、追加、删除以及管理文件和目录等。这里,我们主要讨论的是一个名为"FILEDEMO"的压缩包,里面包含了老师在课堂上编写的...

    egg-upload:egg upload file demo (form 表单)

    uploadQuickStartsee for more detail.Development$ npm i$ npm run dev$ open http://localhost:7001/Deploy$ npm start$ npm stopnpm scriptsUse npm run lint to check code style.Use npm test to run unit test...

    Aq-ChooseFile-demo-haiyong.zip

    内容概要:Aq-ChooseFile-demo-haiyong.zip是一个压缩文件,包含了一个名为“Aq-ChooseFile-demo”的文件夹。该文件夹中包含了一些关于文件选择器的示例代码和相关资源,主要用于演示如何使用文件选择器来选择文件。...

    jav 读取本地文件列表 FileBrowser_demo

    jav 读取本地文件列表 FileBrowser_demojav 读取本地文件列表 FileBrowser_demo

    Demo-FileTransfer.rar

    【标题】"Demo-FileTransfer.rar" 是一个压缩文件,其中包含了有关文件传输的示例代码。这个压缩包可能是为了分享或演示如何在VC++环境下实现文件传输功能,特别是利用编程技术来完成这一任务。 【描述】提到,该...

Global site tag (gtag.js) - Google Analytics