在项目的相对路径下新建一个txt文件,内容为你对IO流字符流的总结,使用IO流读取该文件的内容显示在控制台
package createFile;
import java.io.*;
import java.sql.*;
import java.util.Scanner;
public class io {
//个人心得:在最大,最前面的位置设置静态的Connetion链接,
//方便后面的调用等。
static Connection con=DBUtilsPreparedStatement.getCon();
public static void main(String[] args)throws Exception {
File wenjian=new File("xiangDui.txt");
//if(wenjian.exists()){//用exists判断这个文件是否存在
如果存在就delete用删除掉,防止存在的文件中有内容
//wenjian.delete();
//}//用createNewFile创建文件
wenjian.createNewFile();
//————————————————————
//下面是把内容写入
//自己建的或本身就有的文件
String neiRong="IO is importment";
FileWriter xieRu=new FileWriter(wenjian);
//
//写入文件(就像用吸管喝奶茶)的时候就是要声明
//write(写),flush(冲),close(关),每次
//用吸管喝以口奶茶时都有奶茶(流体)冲到嘴巴中之后嘴巴关闭
xieRu.write(neiRong);
xieRu.flush();
//
//flush英[flʌʃ]
//美[flʌʃ]
//冲(抽水马桶); (用水) 冲洗净,冲洗;
//
xieRu.close();
//——————————————————————
//下面是读取获取自己写的或本身就有的文件,
//之后用System.out.print打印出读取得内容:
FileReader duDu=new FileReader(wenjian);
//读取文件可以一个字符一个字符的读,
//也可以一次读取多个字符 ,
//读取的时候不用flush清空管道,
//只有写入的时候flush清空管道
char [] shuZu=new char[10];
int xiaBiao;
while((xiaBiao=duDu.read(shuZu))!=-1){
System.out.print(new String(shuZu,0,xiaBiao));
//new String(shuZu,0,xiaBiao):
//把一个字节数组by从0取到xiaBiao,
//取出来之后转换成String类型
}
duDu.close();
//读取和写入都最后要用close
}
}
防止中文乱码的方法:
使用File对象在项目根目录创建一个aa.txt的文件,使用字符输出流将内容”一闪一闪亮晶晶,漫天都是小星星”输出到该文件中
package createFile;
import java.io.*;
public class zhuiJiaRoot {
public static void main(String[] args) throws Exception{
File wenjian=new File("src//aa.txt");
wenjian.createNewFile();
//输出流(追加内容),zhuiJia:追加
FileWriter xieRu=new FileWriter(wenjian , true);
String neiRong="一闪一闪亮晶晶,漫天都是小星星";//声明内容
xieRu.write(neiRong);//写出数据
xieRu. flush();//清空管道
xieRu. close();//关闭链接"
//Writer为字符输出流
//Reader为字符输入流
System.out.println("追加成功!请鼠标右键点\n"
+ "项目文件来刷新文件等");
}
}
在相对目录中新建.txt文件追加内容到里面:
package createFile;
import java.io.*;
public class xieRu {
public static void main(String[] args) throws Exception{
File wenjian=new File("zhuiJia.txt");
wenjian.createNewFile();
//输出流(追加内容),zhuiJia:追加
FileWriter xieRu=new FileWriter(wenjian , true);
String neiRong="给诗书画唱一键三连和关注";//声明内容
xieRu.write(neiRong);//写出数据
xieRu. flush();//清空管道
xieRu. close();//关闭链接"
System.out.println("追加成功!请鼠标右键点\n"
+ "项目文件(就是最大,最外面的目录,\n"
+ "比如[file文件和IO流]\n"
+ "的[refresh],来刷新文件等");
}
}
制作复制效果
package createFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**个人的心得:
* 文件复制功能:
* 从一个输入流中读取数据,然后通过输出流写入目标位置
*一边读,一边写(意思就是copy("(要复制的原文件路径)"
*,"(要复制的新的和原文件内容一致的路径)")
*/
public class copyXiaoGuo {
public static void main(String[] args) {
System.out.println("开始复制...");
copyFangFa("zhuiJia.txt","zhuiJia2.txt");
System.out.println("复制成功!");
}
//copyFangFa:复制方法(自己封装和命名的方法)
//target英[ˈtɑːɡɪt]
//美[ˈtɑːrɡɪt]
//n.目标;
//src:源
private static void copyFangFa(String yuanLaiWenJian,String fuZhiWenJian) {
//创建源文件,和目标文件:
File srcFile = new File(yuanLaiWenJian);
File targetFile = new File(fuZhiWenJian);
yuanLaiWenJian:原来的文件
//fuZhiWenJian:复制的文件
//创建输入输出流
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(srcFile);
out = new FileOutputStream(targetFile);
byte[] byteShuZu = new byte[1024];
int len = -1;
while((len = in.read(byteShuZu))!=-1) {
out.write(byteShuZu,0,len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(in != null) in.close();
if(out != null) out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
使用File对象在项目根目录下创建一个bb.txt的文件,使用字符输入流将aa.txt的内容读取出来后在内容后追加内容”明天会更好”
package createFile;
import java.io.*;
import java.sql.*;
import java.util.Scanner;
public class shuLuLiuZhuiJia {
static Connection con=DBUtilsPreparedStatement.getCon();
public static void main(String[] args)throws Exception {
File aaWenjian=new File("src//aa.txt");
FileReader duQu=new FileReader(aaWenjian);
//duQu:读取
char [] shuZu=new char[100];
//100为要读取的内容的字节长度
int xiaBiao;
while((xiaBiao=duQu.read(shuZu))!=-1){
System.out.print(new String(shuZu,0,xiaBiao));
File wenjian=new File("src//bb.txt");
wenjian.createNewFile();
FileWriter xieRu=new FileWriter(wenjian);
xieRu.write(new String(shuZu,0,xiaBiao));
xieRu.flush();
xieRu.close();
}
duQu.close();
File bbWenjian=new File("src//bb.txt");
bbWenjian.createNewFile();
//输出流(追加内容),zhuiJia:追加
FileWriter xieRu=new FileWriter(bbWenjian , true);
String neiRong="明天会更好";//声明内容
xieRu.write(neiRong);//写出数据
xieRu. flush();//清空管道
xieRu. close();//关闭链接"
//Writer为字符输出流
//Reader为字符输入流
System.out.println("\n追加成功!请鼠标右键点\n"
+ "项目文件来刷新文件等");
}
}
制作剪切效果
剪切(电脑术语)bai是指把你选中的du信息放入到剪切板中,后zhi续操作一般是“粘dao贴”,在一个新地方完成“粘贴”步骤后,原来地方的信息自动删除,剪切板中的信息会在新地方中出现。
简言之,假设有两个文件夹甲、乙,在甲文件夹中有信息A。打开甲文件夹,将信息A剪切,然后打开乙文件夹,选择“粘贴”,那么信息A就从甲文件夹中消失,它跑到了乙文件夹中。
package createFile;
import java.io.*;
public class jianQieXiaoGuo {
//个人习惯的命名方法规则:
//copyFangFa_1在copyFangFa里面被调用,
//XXX_1都在XXX里面
public static void copyFangFa_1(File yuanLai, File Xin)
throws IOException {
//
//buffered英[ˈbʌfəd]
//美[ˈbʌfərd]
//v.减少,减缓(伤害); 保护; 使不受…的侵害; 缓冲存储; 缓存;
//
BufferedInputStream huanChongLiuShuRuLiu =
new BufferedInputStream(new FileInputStream(yuanLai));
BufferedOutputStream huanChongShuChuLiu =
new BufferedOutputStream(new FileOutputStream(Xin));
int xiaBiao = 0;
byte[] ziJieShuZu = new byte[1024];
while ((xiaBiao = huanChongLiuShuRuLiu.read(ziJieShuZu)) != -1) {
huanChongShuChuLiu.write(ziJieShuZu, 0, xiaBiao);
}
huanChongLiuShuRuLiu.close();
huanChongShuChuLiu.close();
}
public static void copyFangFa(File yuanLai,
File xin) throws Exception {
if (!xin.exists()) {
xin.mkdirs();
// mkdir:创建指定的一个目录,
//mkdirs:可创建多层原来不存在的目录(即多级目录)
}
File[] shuZu = yuanLai.listFiles();
for (int i = 0; i < shuZu.length; i++) {
if (shuZu[i].isFile()) {
copyFangFa_1(shuZu[i], new File(xin.getPath()
+ "//" + shuZu[i].getName()));
} else
{// 此处"\\"或写成"//"等都可以,仅适用于windows平台,
// 若想实现通用,可将其改为separator
// separator英[ˈsepəreɪtə(r)]
// 美[ˈsepəreɪtər]
// n.分离器; 分选机;
copyFangFa(shuZu[i], new File(xin.getPath()
+ "//" + shuZu[i].getName()));
}
}
}
// 创建删除方法,复制完成后删除文件
// chuanRuWenJian:传入文件
// shanChuFangFa:删除方法
public static void shanChuFangFa(File chuanRuWenJian) {
if (chuanRuWenJian.isFile()) {
chuanRuWenJian.delete();
} else {
File[] shuZu = chuanRuWenJian.listFiles();
for (int i = 0; i < shuZu.length; i++) {
shanChuFangFa(shuZu[i]);
}
chuanRuWenJian.delete();
}
}
public static void main(String[] args) throws Exception {
File yuanLai = new File("D://原来");
// File yuanLai = new File("OldPath");
// "OldPath":旧的文件路径
File xin = new File("D://新");
// File xin = new File("NewPath");
// "NewPath":新的文件路径
copyFangFa(yuanLai, xin);
System.out.println("\n原来的文件夹中的文件复制"
+ "\n到新文件夹中完成");
shanChuFangFa(yuanLai);
System.out.println("\n\n原来的文件夹的文件删除完成");
System.out.println("\n\n剪切完成");
}
}
执行后: