复制文件内容
文件“我的青春谁做主.txt”位于D盘根目录下,
要求将此文件的内容复制到
C:\myFile\my Prime.txt中
实现思路
1.创建文件“D:\我的青春谁做主.txt”并自行输入内容
2.创建C:\myFile的目录。
3.创建输入流FileInputStream对象,负责对D:\我的青春谁做主.txt文件的读取。
4.创建输出流FileOutputStream对象,负责将文件内容写入到C:\myFile\my Prime.txt中。
5.创建中转站数组words,存放每次读取的内容。
6.通过循环实现文件读写。
7.关闭输入流、输出流
package com.company;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.lang.reflect.Field;
/**
* Created by ttc on 18-1-12.
*/
public class Mainn {
public static void main(String[] args) throws IOException, InterruptedException {
File file=new File("D:\\我的青春谁做主.txt");
file.createNewFile();
File file1=new File("E:\\myFile");
if (!file1.exists())
{
file1.mkdirs();
}
FileInputStream fileInputStream=new FileInputStream("D:\\我的青春谁做主.txt");
FileOutputStream fileOutputStream=new FileOutputStream("E:\\myFile\\my Prime.txt");
//创建中转站数组buffer,存放每次读取的内容
byte[] buffer=new byte[100];
//从fileInputStream(d:/我的青春谁做主.txt)中读100个字节到buffer中
int length=fileInputStream.read(buffer);
int count=0;
while (length!=-1)
{
//将buffer中内容写入到输出流(E:\myFile\myPrime.txt)
fileOutputStream.write(buffer,0,length);
//继续从输入流中读取下一批字节
length=fileInputStream.read(buffer);
count++;
}
System.out.println(count);
fileInputStream.close();
fileOutputStream.close();
}
}
使用FileReader读取文件
public static void main(String[] args) throws IOException {
//
FileReader fileReader = new FileReader("D:/我的青春谁做主.txt");
char[] array = new char[100];
int length = fileReader.read(array);
StringBuilder sb = new StringBuilder();
while (length != -1)
{
sb.append(array); //追加
length = fileReader.read(array); //下一次读取
}
System.out.println(sb.toString());//输出array
fileReader.close();
}
BufferedReader类
如何提高字符流读取文本文件的效率?
使用FileReader类与BufferedReader类
BufferedReader类是Reader类的子类
BufferedReader类带有缓冲区
按行读取内容的readLine()方法

public static void main(String[] args) throws IOException {
FileReader fileReader = new FileReader("D:/我的青春谁做主.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
String strContent = bufferedReader.readLine();//读取一行
StringBuilder sb = new StringBuilder();
while (strContent != null)
{
sb.append(strContent);
sb.append("\n");
sb.append("\r");
strContent = bufferedReader.readLine();
}
System.out.println(sb.toString());
fileReader.close();
bufferedReader.close();
}
使用FileWriter写文件
FileWriter fileWriter=new FileWriter("d:/gaga.txt");
BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);
bufferedWriter.write("再见前任");
bufferedWriter.newLine();
bufferedWriter.write("再见,旧时光");
bufferedWriter.flush();
如何提高字符流写文本文件的效率?
使用FileWriter类与BufferedWriter类
BufferedWriter类是Writer类的子类
BufferedWriter类带有缓冲区
//读取模板内容
FileReader fileReader = new FileReader("e:/email.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
String strLine = bufferedReader.readLine();
StringBuilder stringBuilder = new StringBuilder();
while (strLine != null)
{
stringBuilder.append(strLine);
strLine = bufferedReader.readLine();
}
// System.out.println(stringBuilder.toString());
Email email = new Email();
email.setTo("宝贝");
email.setContent("新年快乐");
email.setFrom("大甜甜");
String strContent = stringBuilder.toString();//亲爱的{to} {content} yours {from}
strContent = strContent.replace("{to}",email.getTo());
strContent = strContent.replace("{content}",email.getContent());
strContent = strContent.replace("{from}",email.getFrom());
// System.out.println(strContent);
FileWriter fileWriter = new FileWriter("e:/my_email.txt");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(strContent);
bufferedWriter.flush();
fileReader.close();
bufferedReader.close();
fileWriter.close();
bufferedWriter.close();
类
public class Email {
private String to;
private String content;
private String from;
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
网友评论