`

字节流和字符流读取文件

    博客分类:
  • java
阅读更多
package io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
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 javax.servlet.http.HttpServletRequest;

public class ReadFile {
	public static void main(String[] args) {
		/** 读取字符流文件,并且把此文件复制到本地磁盘 */
		String fromPath = "f://每日任务.txt";
		String toPath = "f://1.txt";
		ReadFile.readAndWriteTxt(fromPath, toPath);

		/** 读取字节流文件,并且把此文件复制到本地磁盘 */
		// String fromPath = "f://3.gif";
		// String toPath = "f://1.gif";
		// ReadFile.readAndWriteImg(fromPath, toPath);
	}

	/**
	 * FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。
	 * 
	 * @param fromPath
	 * @param toPath
	 */
	public static void readAndWriteImg(String fromPath, String toPath) {

		File file = new File(fromPath);
		try {
			FileInputStream is = new FileInputStream(file);
			FileOutputStream os = new FileOutputStream(toPath);
			byte[] b = new byte[1024];
			while (is.read(b) != -1) {
				os.write(b);
			}
			os.close();
			is.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * FileReader 用于读取字符流。要读取原始字节流,请考虑使用 FileInputStream。
	 * 
	 * @param fromPath
	 * @param toPath
	 */
	public static void readAndWriteTxt(String fromPath, String toPath) {

		File file = new File(fromPath);
		try {
			FileReader ir = new FileReader(file);
	        BufferedReader br = new BufferedReader(ir);  
			FileWriter ow = new FileWriter(toPath);
			BufferedWriter bw=new BufferedWriter(ow);
			char[] b = new char[1024];
			while (ir.read(b) != -1) {
				ow.write(b);
			} 
			ow.close();
			ir.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 把文本内容输出到控制台和页面,这个是在jsp页面上调用的方法
	 
	 */
	public static String getTxt(HttpServletRequest request) {

		String fromPath = "f://每日任务.txt";
		StringBuffer sb=new StringBuffer();
		File file = new File(fromPath);
		try {
			FileReader ir = new FileReader(file);
	        BufferedReader br = new BufferedReader(ir);  
			String output;
			while((output=br.readLine())!=null){ 
				sb.append(output+"\n");
				System.out.println(output); 
			} 
			ir.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return sb.toString();
	}

}


jsp页面调用getTxt()
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="io.ReadFile"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<%  
	String content = ReadFile.getTxt(request); 
%>
</head>
<body>
<%=content %>
</body>
</html>















分享到:
评论

相关推荐

    java字节流和字符流

    总的来说,Java的IO操作包括了对文件的打开、读写以及关闭等步骤,无论使用字节流还是字符流,都需要确保在操作完成后关闭流,以释放系统资源。流的关闭一般通过调用`close()`方法实现。在实际编程中,应该注意异常...

    JAVA 字符流与字节流

    - **InputStreamReader** 和 **OutputStreamWriter**:作为字节流和字符流之间的桥梁,可以将字节流转换为字符流或反之。 ### 字符流与字节流的区别 1. **数据单位**:字节流处理的是字节,字符流处理的是字符。 2...

    字节流字符流

    总的来说,字节流和字符流是Java I/O系统的重要组成部分,理解它们的工作原理和应用场景,对于编写高效的文件处理和网络通信程序至关重要。在实际开发中,要根据数据的性质和需求灵活选择使用哪种类型的流,以确保...

    Java字符流和字节流

    ### Java字符流和字节流详解 #### 一、引言 在Java中,I/O流主要用于处理输入输出操作,包括文件读写等。根据处理数据类型的不同,Java I/O流主要分为字节流和字符流两大类。字节流处理的是8位的字节数据,而字符流...

    Java IO 字节流 字符流

    这些缓冲流可以在字节流和字符流上进行包装,例如BufferedReader可以包裹一个InputStreamReader,从而在读取字符时提供更高效的性能。 对于工具的使用,开发者经常使用如Apache Commons IO库中的工具类,如...

    java字节流和字符流[整理].pdf

    转换流:在字节流和字符流之间,Java提供了解决两者不兼容问题的转换流,即InputStreamReader和OutputStreamWriter。InputStreamReader是字节输入流到字符输入流的桥梁,而OutputStreamWriter则是字节输出流到字符...

    字节流字符流练习

    除此之外,InputStreamReader和OutputStreamWriter是字节流与字符流之间的桥梁,它们允许我们在字节流和字符流之间转换,以适应不同编码格式的需求。 在Java IO中,还有一套转换流(Wrapper Stream),即...

    JAVA_字节流和字符流

    - 常见的字节流类有`FileInputStream`和`FileOutputStream`,用于读写文件;`ByteArrayInputStream`和`ByteArrayOutputStream`,用于内存中的数据操作。 - 字节流处理数据时,每次读写一个字节,适合处理二进制...

    Java字节流与字符流的介绍.pdf

    字节流是指以 byte 为单位进行读写操作的流,而字符流是指以 char 为单位进行读写操作的流。 字节流的介绍 字节流的所有读操作都继承自一个公共超类 java.io.InputStream 类。所有的写操作都继承自一个公共超类 ...

    JavaIO实例_字节流_字符流_缓冲流_转换流IODemo

    - 示例:`FileInputStream`和`FileOutputStream`用于读写文件,`InputStreamReader`和`OutputStreamWriter`则将字节流转换为字符流。 2. **字符流**: - 字符流处理的是16位的Unicode字符,适用于处理文本数据。`...

    Java基础11-(字节流、字符流)

    在Java编程中,I/O(Input/...综上所述,Java的字节流和字符流是进行文件操作的基础,它们可以处理不同类型的数据,并且通过各种方法实现文件的读写操作。掌握它们的使用对于进行高效的文件处理和程序设计至关重要。

    Java IO字符流和字节流

    ### Java IO字符流和字节流详解 #### 一、引言 在Java编程中,输入输出(简称IO)操作是十分重要的一个方面。通过IO操作,我们可以读取文件、网络数据、用户输入等,也可以将数据写入到文件、网络、控制台等。Java...

    JavaIO实例|字节流|字符流|缓冲流|转换流IODemo

    例如,FileInputStream和FileOutputStream分别代表文件输入流和文件输出流,它们用于读写文件中的字节数据。字节流适用于任何类型的数据,因为所有数据最终都可以转化为字节序列。 ### 2. 字符流 字符流是Java为...

    IO流学习(字节流 字符流 文本流)!

    例如,FileInputStream和FileOutputStream分别是用于读取和写入文件的字节流实现。字节流的操作通常涉及read()和write()方法,用于读取或写入单个字节,或者read(byte[])和write(byte[])用于读写字节数组。 接下来...

    Java 字节流、字符流题目.docx

    Java的输入和输出主要涉及到流的...总的来说,这个实验旨在帮助学习者理解Java中字节流和字符流的基本概念和用法,包括文件的读写、字符与字节的转换以及流的层次结构。通过实践这些练习,可以深入掌握Java的I/O操作。

    Java 字节流、字符流题目.pdf

    6. 练习六:使用字节流`FileInputStream`和`FileOutputStream`实现文件a.png的复制,一次读写一个字节。 二、字符流 字符流主要处理字符数据,分为`Reader`和`Writer`。对于纯ASCII字符,字节流和字符流处理效果...

    23_IO_第2天(字节流、字符流)_讲义

    常见的字节流实现有FileInputStream和FileOutputStream,它们分别用于读取和写入文件。此外,BufferedInputStream和BufferedOutputStream提供了缓冲功能,提高了读写效率。 字符流是在字节流基础上,为处理字符编码...

    io流详解,字符流和字节流代码

    本文件包“io流详解,字符流和字节流代码”显然是针对Java IO流的深入学习资源,包含了代码示例和可能的可视化解释。 IO流分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流处理的是8位的数据...

    字节流字符流的使用方法源码+文档

    在Java编程语言中,`字节流`和`字符流`是进行输入/输出操作的基础,主要用于处理数据的传输。这两个概念是Java IO系统的核心,它们允许程序与外部设备(如硬盘、网络、内存等)交换信息。在这个压缩包中,你将找到...

Global site tag (gtag.js) - Google Analytics