黑马程序员------File及IO流

File类
  可以通过以下三种方法创建File对象
  1.new File(String pathName); pathName包含文件名称的路径名
  例如:new File("E://1.txt");
  2.new File(String parent,String child); parent父路径字符串,child子路径字符串
  例如:new File("E://a","a.txt");
  注意:指定的父路径必须存在,否则会报出IOException异常
  3.new File(File parent,String child);  parent父抽象路径名,child子路径字符串
  public class FileDemo {

public static void main(String[] args) {
File file=new File("e://java//newfile");
print();
listFile(file);
}

private static void listFile(File file){
if(file.isDirectory()){
File files[]=file.listFiles();
for(int i=0;i<files.length;i++){
System.out.println(files[i].getName());
}
}

}
private static void print() {
File file=new File("e://java//8.html");
if(file.exists()){
String name=file.getName();
String parent=file.getParent();
long length=file.length();
boolean is=file.canWrite();
System.out.println("文件名称为"+file.getName());
System.out.println("文件的目录为"+parent);
System.out.println("文件的大小为"+length);
System.out.println("文件是否为可改写文件"+is);
}else{
System.out.println(file.mkdir());
}
}
}
I\O流
InputStream类:字节输入流的抽象类,是所有字节输入流的父类。
public class InputStreamDemo {
public static void main(String[] args) {
InputStream in=System.in;
byte[] buf=new byte[1024];
try {
int len=in.read(buf);
String s=new String(buf);
System.out.println(s);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
OutputStream类:字节输出流的抽象类,是所有字节输出流的父类。
public class OutputStreamDemo {
public static void main(String[] args) {
OutputStream out=System.out;
byte[] buf="字节输出流".getBytes();
try {
out.write(buf);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
FileInputStream:文件字节输入流,可以从指定路径名的文件中读取字节数据。
new FileInputStream(File file);
new FileInputStream(String path);
public class FileInputStreamDemo {
public static void main(String[] args) {
File file=new File("e://java//8.html");
try {
FileInputStream in=new FileInputStream(file);
byte[] buf=new byte[1024];
int len;
while((len=in.read(buf))!=-1){
String s=new String(buf,0,len);
System.out.println(s);
}
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
FileOutputStream:文件自节流输出,可以向指定的文件写入数据。
new FileOutputStream(File file);
new FileOutputStream(String path);
public class FileOutputStreamDemo {
public static void main(String[] args) {
try {
File file=new File("e://java//8.html");
if(!file.exists()){
file.createNewFile();
}
FileOutputStream out=new FileOutputStream(file,true);//不删除原有的数据
out.write("你好".getBytes());
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
BufferedInputStream:缓存字节输入流。
new BufferedInputStream(InputStream in);
new BufferedInputStream(InputStream in,int size);
public class BufferedInputStreamDemo {
public static void main(String[] args) {
try {
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(new File("e://java//8.html")));
byte[] buf=new byte[1024];
int len;
while((len=bis.read())!=-1){
System.out.println(new String(buf,0,len));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
BufferedOutputStream:缓存字节输出流。
new BufferedOutputStream(OutputStream out);
new BufferedOutputStream(OutputStream out.int size);
public class BufferedOutputStreamDemo {
public static void main(String[] args) {
try {
File file=new File("e://java//8.html");
if(!file.exists()){
file.createNewFile();
}
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(file,true));
bos.write("编程".getBytes());
//bos.flush();
bos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
字符流
字节流与字符流的区别:字节流以字节为单位传送数据,可以是任何类型的数据,如文本、音频、视频、
图片等;而字符流以字符为传送单位,只能传送文本类型的数据。
1.Reader类
public class ReaderDemo {
public static void main(String[] args) {
InputStreamReader in=new InputStreamReader(System.in);
char[] buf=new char[100];
try {
in.read(buf);
String s=new String(buf);
System.out.println(s);
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.Writer类
public class WriterDemo {
public static void main(String[] args) {
OutputStreamWriter out=new OutputStreamWriter(System.out);
try {
out.write("黑马之Java编程");
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
3.FileReader类
new FileReader(File file);
new FileReader(String fileName);
public class FileReaderDemo {
public static void main(String[] args) {
try {
FileReader reader=new FileReader("f://myclass//2.txt");
int len;
while((len=reader.read())!=-1){
System.out.print((char)len);
}
reader.close();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
4.FileWriter类
new FileWriter(File file);
new FileWriter(String path);
public class FileWriterDemo {
public static void main(String[] args) {
char[] chars="黑马之java编程".toCharArray();
for(int i=0;i<chars.length;i++){
chars[i]=(char)(chars[i]^'A');
}
File file=new File("e://java//word.txt");
try {
FileWriter out=new FileWriter(file);
out.write(chars);
out.close();
FileReader in=new FileReader(file);
char[] buf=new char[100];
int n=0,m=0;
while((n=in.read(buf))!=-1){
String s=new String(buf,0,n);
m=n;
System.out.println("加密后的文字:"+s);
}
in.close();
for(int i=0;i<m;i++){
buf[i]=(char)(buf[i]^'A');
}
System.out.println("解密后的文字:"+new String(buf));

} catch (IOException e) {
e.printStackTrace();
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值