如何判断是输入流还是输出流?
以内存为参照物,如果数据是向内存流动是输入流,反之则是输出流
java流分为两种流
1,字节流:可以用于读写二进制文件及任何类型文件byte
2,字符流:可以用于读写文件文本
字节流:输入(InputStream) 输出(OutputStream)
字符流:输入(Reader) 输出(writer)
import java.io.File;
import java.io.IOException;
public class Test1 {
public Test1() {
}
public void test1() {
// // 创建一个文件对象
// File ff = new File("F:\\aa.txt");
// System.out.println("文件路径" + ff.getAbsolutePath());
// System.out.println("文件大小" + ff.length());
// //创建一个文件和创建文件夹
// File f=new File("f:\\fff\\hsp.txt");
// if(!f.exists())
// {
// //可以创建
// try {
// f.createNewFile();
//} catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
//}
// }
// else{
//
// System.out.println("有文件");
// }
//
//
// File fff=new File("f:\\fff");
// if(f.isDirectory())
// {
// System.out.print("文件夹已存在");
// }
// else{//创建
// fff.mkdir();
// }
//列出文件夹所有文件
File ffff=new File("F:\\123");
if(ffff.isDirectory())
{
File list[]=ffff.listFiles();
for(int i=0;i<list.length;i++)
{
System.out.println("文件名"+list[i].getName());
}
}
}
}
package net.test2;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
//演示FileInputStreaam 读取文件内容
public class Demo11_2 {
//构造函数
public Demo11_2(){}
public void demo()
{
File f=new File("F:/test.txt");
FileInputStream fis=null;
//因为File没有读写的能力,所以需要有个InputStream
try {
fis=new FileInputStream(f);
//定义一个字节数组,相当于缓存
byte []bytes=new byte[1024];
int n=0; //得到实际读取到的字节数
//循环读取
while((n=fis.read(bytes))!=-1)
{
//把字节转成String
String s=new String(bytes,0,n);
System.out.println(s);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//关闭文件流必须放这里
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
package net.test3;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
//FileoutputStream的使用
public class Demo11_3 {
public Demo11_3(){}
FileOutputStream fos=null;
public void demo()
{
File f=new File("f:/ss.txt");
try {
fos=new FileOutputStream(f);
String s="hello word"; //换行就是在字符末尾加上\r\n
String s1="你好!";
//定义字节数组
byte []bytes=new byte[1024];
//如何把string转化为bytes数组
fos.write(s.getBytes());
fos.write(s1.getBytes());
} catch (Exception e) {
// TODO: handle exception
}finally{
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
package net.test4;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo12_4 {
public Demo12_4(){}
public void demo()
{
//先把图片加入到内存——》写入某个文件
//因为是二进制文件,只能用字节流完成
FileInputStream fis=null;
// 输出流
FileOutputStream fos=null;
try {
fis=new FileInputStream("e:/照片/12.jpg");
fos=new FileOutputStream("d:/12.jpg");
//用byte存储二进制文件,,byte数组相当于缓存
byte buf[]=new byte[1024];
int n=0; //记录事迹读取到的字节数
//循环读取
while((n=fis.read(buf))!=-1)
{
//输出到指定文件夹
fos.write(buf);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
package net.test5;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//演示文件字符流
public class Demo2_5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 文件取出字符流对象(输入流)
FileReader fr = null;
// 写入到文件(输出流)
FileWriter fw = null;
try {
//创建一个fr对象
fr=new FileReader("d:/test.txt");
fw=new FileWriter("d:/133/test.txt");
int n=0; //用来记录事迹读取的字符数
//读入到内存
char c[]=new char[1024];
while((n=fr.read(c))!=-1)
{
// String s=new String(c,0,n);
// System.out.println(s);
fw.write(c,0,n);
}
} catch (Exception e) {
// TODO: handle exception
}
finally{
try {
fr.close();
fw.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
package net.test6;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//演示缓存字符流
public class Demo12_6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedReader br=null;
BufferedWriter bw=null;
try {
FileReader fr = new FileReader("d:/test.txt");
br=new BufferedReader(fr);
FileWriter fw=new FileWriter("d:/test1.txt");
bw= new BufferedWriter(fw);
//循环读取文件
String s="";
while((s=br.readLine())!=null)
{
// System.out.println(s);
bw.write(s+"\r\n");
}
} catch (Exception e) {
// TODO: handle exception
}
finally{
try {
bw.close();
br.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}