package FileStram;
import java.awt.Image;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.BitSet;
/**
* 字节流
* @author hy
*
*/
public class FileInputOutStram {
/**
* 主函数
* @param args
*/
public static void main(String[] args) {
System.out.println("-----文件流--------");
fileinputStram("D:\\text.txt");
fileOutputStram("D:\\text.txt");
coupFile("D://javaIo/log.png","D://javaIo/log2.png");
}
/**
* 输出流是向文件中写
* @param pathname 目标文件
*/
public static void fileinputStram(String pathname){
String body="建安费就当是可怜可怜房间里的时刻";
File file=new File(pathname);
try {
//file.mkdir();创建文件file.mkdirs();创建路径
file.createNewFile();//创建文件
FileOutputStream fileOutputStream=new FileOutputStream(file);
fileOutputStream.write(body.getBytes());
fileOutputStream.close();
} catch (Exception e) {
// 文件不存在
}
}
/**
* 输入流是读取文件
* @param pathname 目标文件
*/
private static void fileOutputStram(String filePath) {
int size;
String cont=null;
File file=new File(filePath);
try {
FileInputStream fileInputStream=new FileInputStream(file);
byte b[]=new byte[1024];//每次读1024个字节
while ((size=fileInputStream.read(b))!=-1) {//读出来的东西放在b[]里面
cont=new String(b,0,size);//从0到当前字节大小读
System.out.println("----"+cont);
}
fileInputStream.close();//按需要关闭,不用了则一定要关闭
} catch (Exception e) {
// 文件不存在
e.printStackTrace();
}
}
/**
* 复制文件
* @param filepath1 目标文件
* @param filepath2 复制到
*/
private static void coupFile(String filepath1,String filepath2) {
long timGo=System.currentTimeMillis();//执行时的起始时间
try {
FileInputStream fileInputStream1=new FileInputStream(filepath1);
FileOutputStream fileOutputStream=new FileOutputStream(filepath2);
byte b[]=new byte[1024];//每次读1024个字节
int size;
while ((size=fileInputStream1.read(b))!=-1) {
fileOutputStream.write(b,0,size);
}
fileInputStream1.close();
fileOutputStream.close();
} catch (Exception e) {
// 文件不存在
e.printStackTrace();
}
long timEnd=System.currentTimeMillis();//执行终止时的时间
System.out.println("使用文件输入流和文件输出流实现文件的复制完毕!耗时:"+(timEnd-timGo)+"毫秒");
System.exit(0);//结束java虚拟机,释放内存。
}
}
/**
这个方法是用来结束当前正在运行中的java虚拟机。任何status是非零参数,那么表示是非正常退出。
System.exit(0)是将你的整个虚拟机里的内容都停掉了 ,而dispose()只是关闭这个窗口,但是并没有停止整个application exit() 。无论如何,内存都释放了!也就是说连JVM都关闭了,内存里根本不可能还有什么东西
System.exit(0)是正常退出程序,而System.exit(1)或者说非0表示非正常退出程序
System.exit(status)不管status为何值都会退出程序。和return 相比有以下不同点: return是回到上一层,而System.exit(status)是回到最上层
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.BitSet;
/**
* 字节流
* @author hy
*
*/
public class FileInputOutStram {
/**
* 主函数
* @param args
*/
public static void main(String[] args) {
System.out.println("-----文件流--------");
fileinputStram("D:\\text.txt");
fileOutputStram("D:\\text.txt");
coupFile("D://javaIo/log.png","D://javaIo/log2.png");
}
/**
* 输出流是向文件中写
* @param pathname 目标文件
*/
public static void fileinputStram(String pathname){
String body="建安费就当是可怜可怜房间里的时刻";
File file=new File(pathname);
try {
//file.mkdir();创建文件file.mkdirs();创建路径
file.createNewFile();//创建文件
FileOutputStream fileOutputStream=new FileOutputStream(file);
fileOutputStream.write(body.getBytes());
fileOutputStream.close();
} catch (Exception e) {
// 文件不存在
}
}
/**
* 输入流是读取文件
* @param pathname 目标文件
*/
private static void fileOutputStram(String filePath) {
int size;
String cont=null;
File file=new File(filePath);
try {
FileInputStream fileInputStream=new FileInputStream(file);
byte b[]=new byte[1024];//每次读1024个字节
while ((size=fileInputStream.read(b))!=-1) {//读出来的东西放在b[]里面
cont=new String(b,0,size);//从0到当前字节大小读
System.out.println("----"+cont);
}
fileInputStream.close();//按需要关闭,不用了则一定要关闭
} catch (Exception e) {
// 文件不存在
e.printStackTrace();
}
}
/**
* 复制文件
* @param filepath1 目标文件
* @param filepath2 复制到
*/
private static void coupFile(String filepath1,String filepath2) {
long timGo=System.currentTimeMillis();//执行时的起始时间
try {
FileInputStream fileInputStream1=new FileInputStream(filepath1);
FileOutputStream fileOutputStream=new FileOutputStream(filepath2);
byte b[]=new byte[1024];//每次读1024个字节
int size;
while ((size=fileInputStream1.read(b))!=-1) {
fileOutputStream.write(b,0,size);
}
fileInputStream1.close();
fileOutputStream.close();
} catch (Exception e) {
// 文件不存在
e.printStackTrace();
}
long timEnd=System.currentTimeMillis();//执行终止时的时间
System.out.println("使用文件输入流和文件输出流实现文件的复制完毕!耗时:"+(timEnd-timGo)+"毫秒");
System.exit(0);//结束java虚拟机,释放内存。
}
}
/**
这个方法是用来结束当前正在运行中的java虚拟机。任何status是非零参数,那么表示是非正常退出。
System.exit(0)是将你的整个虚拟机里的内容都停掉了 ,而dispose()只是关闭这个窗口,但是并没有停止整个application exit() 。无论如何,内存都释放了!也就是说连JVM都关闭了,内存里根本不可能还有什么东西
System.exit(0)是正常退出程序,而System.exit(1)或者说非0表示非正常退出程序
System.exit(status)不管status为何值都会退出程序。和return 相比有以下不同点: return是回到上一层,而System.exit(status)是回到最上层
*/
//望各位大咖指教