文件是数据源的一种,主要用于保存数据
文件在程序中以流的形式操作
以内存为参照:数据向内存流入,则是输入流;反之,输出流。
字符流和字节流
区别:1.读写单位不同,字节流以字节(8bit)为单位,字符流以字符为单位。
2.处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符型数据
结论:只要是处理纯文本数据,优先考虑使用字符流,。除此之外使用字节流
字节流 | 字符流 | |
输入 | InputStream | Reader |
输出 | OutputStream | Writer |
package com.test;
import java.io.*;
public class FileTest {
public static void main(String[] args) {
File f = new File("E:\\aa.txt");
if(!f.exists())
{
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
else
{
System.out.println("有文件存在");
}
//得到文件路径
System.out.println(f.getAbsolutePath());
//得到文件大小
System.out.println(f.length());
}
}
列出一个文件夹下的所有文件
package com.test;
import java.io.*;
public class FileTest {
public static void main(String[] args) {
File f = new File("E:\\aa.txt");
if(!f.exists())
{
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
else
{
System.out.println("有文件存在");
}
//得到文件路径
System.out.println(f.getAbsolutePath());
//得到文件大小
System.out.println(f.length());
}
}
package com.test;
import java.io.*;
public class FileTest1 {
public static void main(String[] args) {
File f = new File("E:\\电影");
if(f.isDirectory())
{
File lists[] = f.listFiles();
for(int i=0;i<lists.length;i++)
System.out.println(lists[i]);
}
}
}
FileInputStream类的使用:从文件中读取内容
package com.test;
import java.io.*;
public class FileTest2 {
public static void main(String[] args) {
File f = new File("E:\\aa.txt");
//因为File没有读写能力所以需要用到InputStream流
FileInputStream fis = null;
try
{
fis = new FileInputStream(f);
//定义一个字节数组,相当于缓存
byte []bytes = new byte[1024];
int n=0;//得到实际读取的字节数
while((n=fis.read(bytes))!=-1)//此方法无数据返回-1
{
//把字节转化成String
String s = new String(bytes,0,n);
System.out.println(s);
}
}
catch (Exception e) {
}
finally{
//关闭文件流
try
{
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
FileOutputStream类的使用:向文件写入内容,从键盘接收
package com.test;
import java.io.*;
public class FileTest3 {
public static void main(String[] args) {
File f = new File("E:\\aa.txt");
FileOutputStream fos = null;
try
{
fos = new FileOutputStream(f);
String s = "XIaoZIp\r\n";
String s1 = "Hello,World";
fos.write(s.getBytes());
fos.write(s1.getBytes());
}catch(Exception e){
}finally{
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}