欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

字节流和字符流读取文件

程序员文章站 2022-06-09 21:26:16
...

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>