java中字节级数据文件的读写编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中字节级数据文件的读写编程相关的知识,希望对你有一定的参考价值。

java中字节级数据文件的读写编程编写程序将windows系统中某个目录下的所有文件名以及子目录名以字节数据形式存到一个数据文件(.dat类型文件)中,然后从该文件读取这些数据并显示出来。具体要求是:(1)字节数据文件的读写采用缓冲的方式。(2)定义一个从系统目录读取文件名并存入数据文件的成员方法,该方法包含两个参数:path参数用来指定文件目录;datafile指定数据的存放文件名称。(3)定义一个从数据文件读取字节数据并屏幕打印的成员方法,该方法包含一个参数datafile,用来指定存放数据的文件名称。(4)在主函数中创建一个对象,完成程序所需功能。程序中加入异常处理机制。

import java.util.Scanner;
import java.io.*;

class MyFile

MyFile(String d)

this.d=d;

void write(String path,String datafile)

File f=new File(this.d);
StringBuilder sb=new StringBuilder();
String savepath;
String[] strs;
BufferedOutputStream bos;
byte[] buf;

this.path=path.endsWith("\\") ? path.substring(0,path.length()-1) : path;
savepath=this.path+"\\"+datafile;
try

strs=f.list();
for(String str : strs)

sb.append(str);
sb.append("\r\n");

bos=new BufferedOutputStream(new FileOutputStream(savepath),MyFile.Size);
buf=sb.toString().getBytes();
bos.write(buf,0,buf.length);
//bos.flush();
bos.close();

catch(Exception e)

System.out.println(e.getMessage());


void show(String datafile)

String fp=datafile.contains("\\") ? datafile : this.path+"\\"+datafile;
File f=new File(fp);
BufferedInputStream bis;
byte[] buf;

try

buf=new byte[(int)f.length()];
bis=new BufferedInputStream(new FileInputStream(f),MyFile.Size);
bis.read(buf,0,buf.length);
System.out.println(new String(buf));
bis.close();

catch(Exception e)

System.out.println(e.getMessage());


private static final int Size=8*1024;
private String d,path;

public class P

public static void main(String[] args)

Scanner sc=new Scanner(System.in);
MyFile f;
String d,path,datafile;

System.out.print("请输入windows系统中某个目录的路径:");
d=sc.nextLine();
f=new MyFile(d);
System.out.print("请输入保存数据的文件的路径:");
path=sc.nextLine();
System.out.print("请输入保存数据的文件的文件名:");
datafile=sc.nextLine();
f.write(path,datafile);
f.show(datafile);
sc.close();

参考技术A 就是 java.io 中几个输入流和输出流
~~~~~~~~~~追问

就是不会编写啊,那你能不能帮我写一下啊

参考技术B int len = 0;

while (-1 != (len = fis.read(b)) )
fos.write(b,0,len);//b是一个byte数组,大小1024

Java 学习笔记 - 按 Java 类型,读写字节文件

Java 学习笔记 - 读写字节文件

数据按 Java 类型写入

File file = new File("E:\\\\info.data");
try (FileOutputStream fos = new FileOutputStream(file);           // 创建文件输出流
     BufferedOutputStream bos = new BufferedOutputStream(fos);    // 添加缓冲流优化性能
     DataOutputStream dataOutStream = new DataOutputStream(bos);) // 创建数据输出流

    dataOutStream.writeUTF("那唐僧内眼凡胎不识妖怪,反护着它……");
    dataOutStream.writeInt(10);
    dataOutStream.writeLong(100L);

数据按 Java 类型读取

File file = new File("E:\\\\info.data");
try (FileInputStream fis = new FileInputStream(file);		   // 创建文件输入流
     BufferedInputStream bis = new BufferedInputStream(fis);   // 添加缓冲流优化性能
     DataInputStream dataInStream = new DataInputStream(bis);) // 创建数据输入流

    String s = dataInStream.readUTF();	// 与上面输出时对应,读字符
    System.out.println(s);
    int i = dataInStream.readInt();		// 与上面输出时对应,读 int
    System.out.println(i);
    long l = dataInStream.readLong();   // 与上面输出时对应,读 long 
    System.out.println(l);

参考资料

笑虾:Java 学习笔记 - IO篇:常见的【IO流Stream】以及相互关系
笑虾:Java 学习笔记 - IO篇:复制文件
笑虾:Java 学习笔记 - IO篇:读写文本文件txt

以上是关于java中字节级数据文件的读写编程的主要内容,如果未能解决你的问题,请参考以下文章

Java 学习笔记 - 按 Java 类型,读写字节文件

Java 学习笔记 - 按 Java 类型,读写字节文件

Java 学习笔记 - 按 Java 类型,读写字节文件

java文件读写

Java上机实验报告

原 BinaryWriter和BinaryReader(二进制文件的读写)