java i/o操作

//控制台读取(Console)


//过滤器

//文件后缀过滤器

package test.File;


import java.io.File;
import java.io.FileFilter;


/**
* @author liuzhongbing
* 括展名过滤器
*/
public class ExtensionFilter implements FileFilter {


// 扩展名
private String extension;


public ExtensionFilter(String extension) {
this.extension = extension;
}


public boolean accept(File file) {
// 如果是目录则返回false
if (file.isDirectory()) {
return false;
}


// 取得文件名
String name = file.getName();
// 扩展名前的符号“.”
int index = name.lastIndexOf(".");
if (index == -1) { // 没有扩展名则返回false
return false;
} else if (index == name.length() - 1) { // 以点号结尾则返回false
return false;
} else { // 如果括展名相同,则返回true
return this.extension.equals(name.substring(index + 1));
}
}
}

//图片后缀过滤器

package test.File;


import java.io.File;
import java.io.FilenameFilter;


/**
* @author liuzhongbing
* 图片过滤器
*/
public class ImageFilter implements FilenameFilter {


/**
* gif文件
* @param filename 文件名
* @return
*/
public boolean isGif(String filename) {
if (filename.toLowerCase().endsWith(".gif")) {
return true;
} else {
return false;
}
}


/**
* jpg文件
* @param filename 文件名
* @return
*/
public boolean isJpg(String filename) {
if (filename.toLowerCase().endsWith(".jpg")) {
return true;
} else {
return false;
}
}


/**
* png文件
* @param filename 文件名
* @return
*/
public boolean isPng(String filename) {
if (filename.toLowerCase().endsWith(".png")) {
return true;
} else {
return false;
}
}


public boolean accept(File dir, String filename) {
return (isGif(filename) || isJpg(filename) || isPng(filename));
}
}

//使用代码

package test.File;
import java.io.File;
public class TestFile {
public static void main(String[] args) {
File file = new File("D:/demo"); // 目录实例
ExtensionFilter txtFilter = new ExtensionFilter("txt"); // 创建一个txt过滤器
File[] files = file.listFiles(txtFilter); // 使用过滤器查找txt文件
// 输出查找的文件列表
for (int i = 0; i < files.length; i++) {
System.out.println(files[i].getAbsolutePath());
}
ImageFilter imageFilter = new ImageFilter();// 创建一个图片过滤器
File[] images = file.listFiles(imageFilter);// 使用过滤器查找图片文件
// 输出查找的文件列表
for (int i = 0; i < images.length; i++){
System.out.println(images[i].getAbsolutePath());
}
}
}


//随机访问文件内容

package test.File;
import java.io.RandomAccessFile;
public class TestRandomAccessFile {
public static void main(String[] args) {
try {
RandomAccessFile file = new RandomAccessFile("D:/demo/test.txt", "rw");
// 定位读取位置
file.seek(1);
// 读取文件长度
long size = file.length();
System.out.println("文件大小:"+size);
// 读取一个字节
int c = file.read();
System.out.println((char)c);
// 读取字节数组
byte[] b = new byte[3];
file.read(b);
String str = new String(b);
System.out.println(str);
// 读取字节数组
byte[] b2 = new byte[3];
file.read(b2, 1, 2);
String str2 = new String(b2);
System.out.println(str2);
// 读取一行数据
System.out.println(file.readLine());
// 写入一个字节
file.write(100);
// 写入字节数组
byte[] bw = new byte[3];
bw[0] = 100;
bw[1] = 101;
bw[2] = 102;
file.write(bw);
// 写入字节数组
file.write(bw, 1, 2);
// 写入字符串
file.writeBytes("AA");
file.writeChars("DD");
// 写入中文字符
file.writeUTF("中国");
// 关闭文件
file.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

//输入流操作

//FileInputStream(文件输入流)

package test.InputStream;


import java.io.FileInputStream;
import java.io.IOException;


public class TestFileInputStream {


public static void main(String[] args) {
try {
// 创建输入流
FileInputStream is = new FileInputStream("D:/demo/test.txt");
// 从输入流读取数据
while (is.available() > 0) {
int c = is.read();
System.out.print((char)c);
}
// 关闭输入流
is.close();
} catch (IOException e) {
}
}
}

//BufferedInputStream(缓存输入流)

package test.InputStream;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class TestBufferedInputStream {
public static void main(String[] args) {
try {
// 创建输入流
FileInputStream is = new FileInputStream("D:/demo/test.txt");
BufferedInputStream bis = new BufferedInputStream(is);
// 从输入流读取数据
while (bis.available() > 0) {
int c = bis.read();
System.out.print((char)c);
}
// 关闭输入流
bis.close();
is.close();
} catch (IOException e) {
}
}
}

//DataInputStream 数据输入流

package test.InputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.DataInputStream;
public class TestDataInputStream {


public static void main(String[] args) {
try {
// 创建文件输入流
FileInputStream fis = new FileInputStream("D:/demo/data.tmp");
// 创建数据输入流
DataInputStream dis = new DataInputStream(fis);
// 读取对象数据
int i = dis.readInt();
boolean b = dis.readBoolean();
float f = dis.readFloat();
System.out.println("i=" + i);
System.out.println("b=" + b);
System.out.println("f=" + f);

// 关闭输入流
dis.close();
fis.close();
} catch (IOException e) {
}
}
}

//行号输入流(LineNumberInputStream),按行号来读取文件内容;

package test.InputStream;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.LineNumberInputStream;
public class TestLineNumberInputStream {
public static void main(String[] args) {
try {
// 创建文件输入流
FileInputStream fis = new FileInputStream("D:/demo/test.txt");
// 创建行号输入流
LineNumberInputStream lis = new LineNumberInputStream(fis);
// 创建数据输入流
DataInputStream dis = new DataInputStream(lis);
// 读取数据
String line;
while ((line = dis.readLine()) != null) {
System.out.println(lis.getLineNumber() + ":" + line);
}
// 关闭输入流
dis.close();
lis.close();
fis.close();
} catch (IOException e) {
}
}
}

//按行读取文件中json字符格式,第一行存在一个 空字符 问题解决

line.getBytes()[0]+255; //按字节读取出来

line.charAt(0);//按行读取出来

问题原因,文本编辑是用的是 utf-8格式,改成utf-8 无POM格式即可

try {
// 创建文件输入流
FileReader fis = new FileReader("D:/demo/test.txt");
// 创建行号输入流
LineNumberReader lis = new LineNumberReader(fis);
// 读取数据
String line;
while ((line = lis.readLine()) != null&&!((line = lis.readLine()).equals(""))) {
//System.out.println(lis.getLineNumber() + ":" + line);
//System.out.println( line);
 JSONObject jsonObject = new JSONObject(line.trim());
 System.out.println( jsonObject.getString("11"));
}
// 关闭输入流
lis.close();
fis.close();
} catch (IOException e) {
}

//对象输入流(ObjectInputStream)
package test.InputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.Date;
public class TestObjectInputStream {
public static void main(String[] args) {
try {
// 创建文件输入流
FileInputStream fis = new FileInputStream("D:/demo/test.tmp");
// 创建对象输入流
ObjectInputStream ois = new ObjectInputStream(fis);
// 读取对象数据
int i = ois.readInt();
String str = (String) ois.readObject();
Date date = (Date) ois.readObject();
System.out.println("i=" + i);
System.out.println("str=" + str);
System.out.println("date" + date);

// 关闭输入流
ois.close();
fis.close();
} catch (IOException e) {
} catch (ClassNotFoundException e) {
}
}
}

//管道输入输出流(PipedOutputStream)

package test.InputStream;
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
public class TestPipedInputStream {
public static void main(String[] args) {
try {
// 创建管道输出流
PipedOutputStream os = new PipedOutputStream();
// 创建输入流
PipedInputStream is = new PipedInputStream(os);
// 从输出流写入数据
byte[] b = new byte[3];
b[0] = 100;
b[1] = 101;
b[2] = 102;
os.write(b);
// 从输入流读取数据
while (is.available() > 0) {
int c = is.read();
System.out.print((char)c);
}
// 关闭输入流
is.close();
// 关闭输出流
os.close();
} catch (IOException e) {
}
}
}

//推会输入流(PushbackInputStream)

package test.InputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PushbackInputStream;
public class TestPushbackInputStream {
public static void main(String[] args) {
try {
// 创建文件输入流
FileInputStream fis = new FileInputStream("D:/demo/test.txt");
// 创建推回输入流
PushbackInputStream pis = new PushbackInputStream(fis);
// 读取对象数据
int c = pis.read();
System.out.print((char)c);
pis.unread(c);// 推回一个字节
c = pis.read();// 再次读取
System.out.print((char)c);
// 关闭输入流
pis.close();
fis.close();
} catch (IOException e) {
}
}
}

//序列输入流(SequenceInputStream)

package test.InputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;
public class TestSequenceInputStream {
public static void main(String[] args) {
try {
// 创建输入源数组
FileInputStream fis1 = new FileInputStream("D:/demo/test.txt");
FileInputStream fis2 = new FileInputStream("D:/demo/test2.txt");
Vector<FileInputStream> vector = new Vector<FileInputStream>();
vector.add(fis1);
vector.add(fis2);
Enumeration<FileInputStream> e = vector.elements();
// 创建序列输入源
SequenceInputStream is = new SequenceInputStream(e);
// 从输入流读取数据
while (is.available() > 0) {
int c = is.read();
System.out.print((char)c);
}
// 关闭输入流
is.close();
} catch (IOException e) {
}
}
}

//StringBufferInputStream(字符串缓存输入流)

package test.InputStream;


import java.io.IOException;
import java.io.StringBufferInputStream;


public class TestStringBufferInputStream {


public static void main(String[] args) {
try {
// 创建输入流
StringBufferInputStream is = new StringBufferInputStream("Hello,World!");

// 从输入流读取数据
while (is.available() > 0) {
int c = is.read();
System.out.print((char)c);
}

// 关闭输入流
is.close();
} catch (IOException e) {
}
}
}

//ByteArrayInputStream(数组输入流)

package test.InputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
public class TestByteArrayInputStream {
public static void main(String[] args) {
// 初始化字节数组
byte[] buf = new byte[3];
buf[0] = 100;
buf[1] = 101;
buf[2] = 102;
try {
// 创建输入流
ByteArrayInputStream is = new ByteArrayInputStream(buf);
// 从输入流读取数据
byte[] b = new byte[3];
is.read(b);
System.out.println(new String(b));
// 关闭输入流
is.close();
} catch (IOException e) {
}
}
}


//输出流操作



// 系统输入输出(System)



//读写操作(Reader、Writer)




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值