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

Python011

java中字节级数据文件的读写编程,第1张

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()

}

}

Java中读取txt文件可以使用file类先创建一个对象,然后使用I/O操作,进行读取或者写入操作,示例如下:\x0d\x0aimportjava.io.BufferedReader\x0d\x0aimportjava.io.File\x0d\x0aimportjava.io.FileInputStream\x0d\x0aimportjava.io.FileNotFoundException\x0d\x0aimportjava.io.FileOutputStream\x0d\x0aimportjava.io.IOException\x0d\x0aimportjava.io.InputStreamReader\x0d\x0aimportjava.io.PrintWriter\x0d\x0a\x0d\x0apublicclassdemo2{\x0d\x0aprivatestaticStringpath="f:/demo1.txt"\x0d\x0aprivatestaticFilefile\x0d\x0astatic{\x0d\x0afile=newFile(path)\x0d\x0aif(!file.exists()){\x0d\x0atry{\x0d\x0afile.createNewFile()\x0d\x0a}catch(IOExceptione){\x0d\x0ae.printStackTrace()\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0apublicstaticvoidmain(String[]args)throwsIOException{\x0d\x0aStudentstu=newStudent(1,"张三",90)\x0d\x0awriteDataToFile(file,stu)\x0d\x0areadDataFromFile(file)\x0d\x0a}\x0d\x0a\x0d\x0aprivatestaticvoidreadDataFromFile(Filefile)throwsIOException{\x0d\x0aBufferedReaderreader=newBufferedReader(newInputStreamReader(newFileInputStream(file)))\x0d\x0aStringstr=""\x0d\x0awhile((str=reader.readLine())!=null){\x0d\x0aString[]stuInfo=str.split(",")\x0d\x0aSystem.out.println("学号:"+stuInfo[0]+"姓名:"+stuInfo[1]+"score:"+stuInfo[2])\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0aprivatestaticvoidwriteDataToFile(Filefile,Studentstu)throwsFileNotFoundException{\x0d\x0aPrintWriterout=newPrintWriter(newFileOutputStream(file,true))\x0d\x0aout.println(stu.toString())\x0d\x0aout.close()\x0d\x0a}\x0d\x0a}

这个JDK的类库都帮我们实现好了。如FileWriter类:

public FileWriter(File file,boolean append)

throws IOException

根据给定的 File 对象构造一个 FileWriter 对象。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。

例子程序如下:

import java.io.File

import java.io.Writer

import java.io.FileWriter

public class WriterDemo02{

public static void main(String args[]) throws Exception}

java的优点:

java是纯面向对象编程的语言;

平台无关性 (一次编译,到处运行;Write Once,Run Anywhere);

java提供了许多内置的类库,通过这些类库,简化了开发人员的设计工作,同时缩短了项目开发时间;

提供了对Web应用开发的支持,例如,Applet,Servlet,和JSP可以用来开发Web应用程序,Socket,RMI可以用来开发分布式应用程序的类库。