流和文件:保存和读取字节级数据
保存和读取字节级数据:
1
//写100000个随机数到一个文件中,非缓冲技术,同进测试操作时间
2
import java.io.*;
3
public class WriteUnbufferedTest
4
{
5
public static void main(String[] args)
6
{
7
try{
8
long start=System.currentTimeMillis(); //当前时间
9
FileOutputStream fsout=new FileOutputStream("sample.dat");
10
System.out.println("start="+start);
11
DataOutputStream out=new DataOutputStream(fsout);
12
for(int i=0; i<100000; i++)
13
out.writeDouble(Math.random());
14
out.close();
15
long stop=System.currentTimeMillis();
16
System.out.println("stop="+stop);
17
System.out.println("Time passed: "+(stop-start));
18
}catch(IOException ioe){
19
System.out.println(ioe);
20
}
21
}
22
}
23
//写100000个随机数到一个文件中,非缓冲技术,同进测试操作时间2
import java.io.*;3
public class WriteUnbufferedTest4
{5
public static void main(String[] args) 6
{7
try{8
long start=System.currentTimeMillis(); //当前时间9
FileOutputStream fsout=new FileOutputStream("sample.dat");10
System.out.println("start="+start);11
DataOutputStream out=new DataOutputStream(fsout);12
for(int i=0; i<100000; i++)13
out.writeDouble(Math.random());14
out.close();15
long stop=System.currentTimeMillis();16
System.out.println("stop="+stop);17
System.out.println("Time passed: "+(stop-start));18
}catch(IOException ioe){19
System.out.println(ioe);20
}21
}22
}23

1
//写100000个随机数到一个文件中,缓冲技术,同进测试操作时间
2
import java.io.*;
3
public class WriteBufferedTest
4
{
5
public static void main(String[] args)
6
{
7
try{
8
long start=System.currentTimeMillis(); //当前时间
9
System.out.println("start="+start);
10
FileOutputStream fsout=new FileOutputStream("sample.dat");
11
BufferedOutputStream bfsout=new BufferedOutputStream(fsout);
12
DataOutputStream out=new DataOutputStream(bfsout);
13
for(int i=0; i<100000; i++)
14
out.writeDouble(Math.random());
15
out.close();
16
long stop=System.currentTimeMillis();
17
System.out.println("stop="+stop);
18
System.out.println("Time passed: "+(stop-start));
19
}catch(IOException ioe){
20
System.out.println(ioe);
21
}
22
}
23
}
24
//写100000个随机数到一个文件中,缓冲技术,同进测试操作时间2
import java.io.*;3
public class WriteBufferedTest4
{5
public static void main(String[] args) 6
{7
try{8
long start=System.currentTimeMillis(); //当前时间9
System.out.println("start="+start);10
FileOutputStream fsout=new FileOutputStream("sample.dat");11
BufferedOutputStream bfsout=new BufferedOutputStream(fsout);12
DataOutputStream out=new DataOutputStream(bfsout);13
for(int i=0; i<100000; i++)14
out.writeDouble(Math.random());15
out.close();16
long stop=System.currentTimeMillis();17
System.out.println("stop="+stop);18
System.out.println("Time passed: "+(stop-start));19
}catch(IOException ioe){20
System.out.println(ioe);21
}22
}23
}24

1
//非缓冲技术,读文件
2
import java.io.*;
3
public class ReadUnbufferedTest
4
{
5
public static void main(String[] args)
6
{
7
double sum=0;
8
try{
9
long start=System.currentTimeMillis();
10
System.out.println("start="+start);
11
FileInputStream fsin=new FileInputStream("sample.dat");
12
DataInputStream in=new DataInputStream(fsin);
13
for(int i=0; i<100000; i++)
14
sum+=in.readDouble();
15
in.close();
16
long stop=System.currentTimeMillis();
17
System.out.println("stop="+stop);
18
System.out.println("Average: "+(sum/100000));
19
System.out.println("Time passed: "+(stop-start));
20
}catch(IOException ioe){
21
System.out.println(ioe);
22
}
23
}
24
}
25
//非缓冲技术,读文件2
import java.io.*;3
public class ReadUnbufferedTest 4
{5
public static void main(String[] args) 6
{7
double sum=0;8
try{9
long start=System.currentTimeMillis();10
System.out.println("start="+start);11
FileInputStream fsin=new FileInputStream("sample.dat");12
DataInputStream in=new DataInputStream(fsin);13
for(int i=0; i<100000; i++)14
sum+=in.readDouble();15
in.close();16
long stop=System.currentTimeMillis();17
System.out.println("stop="+stop);18
System.out.println("Average: "+(sum/100000));19
System.out.println("Time passed: "+(stop-start));20
}catch(IOException ioe){21
System.out.println(ioe);22
}23
}24
}25

1
//缓冲技术,读文件
2
import java.io.*;
3
public class ReadBufferedTest
4
{
5
public static void main(String[] args)
6
{
7
double sum=0;
8
try{
9
long start=System.currentTimeMillis();
10
System.out.println("start="+start);
11
FileInputStream fsin=new FileInputStream("sample.dat");
12
BufferedInputStream bfsin=new BufferedInputStream(fsin);
13
DataInputStream in=new DataInputStream(bfsin);
14
for(int i=0; i<100000; i++)
15
sum+=in.readDouble();
16
in.close();
17
long stop=System.currentTimeMillis();
18
System.out.println("stop="+stop);
19
System.out.println("Average: "+(sum/100000));
20
System.out.println("Time passed: "+(stop-start));
21
}catch(IOException ioe){
22
System.out.println(ioe);
23
}
24
}
25
}
26
//缓冲技术,读文件2
import java.io.*;3
public class ReadBufferedTest 4
{5
public static void main(String[] args) 6
{7
double sum=0;8
try{9
long start=System.currentTimeMillis();10
System.out.println("start="+start);11
FileInputStream fsin=new FileInputStream("sample.dat");12
BufferedInputStream bfsin=new BufferedInputStream(fsin);13
DataInputStream in=new DataInputStream(bfsin);14
for(int i=0; i<100000; i++)15
sum+=in.readDouble();16
in.close();17
long stop=System.currentTimeMillis();18
System.out.println("stop="+stop);19
System.out.println("Average: "+(sum/100000));20
System.out.println("Time passed: "+(stop-start));21
}catch(IOException ioe){22
System.out.println(ioe);23
}24
}25
}26

1
//创建简单程序,存储数据到sample.dat文件中
2
import java.io.*;
3
public class SimpleOutputTest
4
{
5
public static void main(String[] args)
6
{
7
double pi=3.1415;
8
int i=10;
9
boolean okay=true;
10
char ch='J';
11
String s="Java C Pascal";
12
try{
13
FileOutputStream fsout=new FileOutputStream("sample.dat");
14
DataOutputStream out=new DataOutputStream(fsout);
15
out.writeDouble(pi);
16
out.writeInt(i);
17
out.writeBoolean(okay);
18
out.writeChar(ch);
19
out.writeUTF(s);
20
out.close();
21
}catch(FileNotFoundException fe){
22
System.err.println(fe);
23
}catch(IOException ioe){
24
System.out.println(ioe);
25
}
26
}
27
}
28
//创建简单程序,存储数据到sample.dat文件中2
import java.io.*;3
public class SimpleOutputTest 4
{5
public static void main(String[] args) 6
{7
double pi=3.1415;8
int i=10;9
boolean okay=true;10
char ch='J';11
String s="Java C Pascal";12
try{13
FileOutputStream fsout=new FileOutputStream("sample.dat");14
DataOutputStream out=new DataOutputStream(fsout);15
out.writeDouble(pi);16
out.writeInt(i);17
out.writeBoolean(okay);18
out.writeChar(ch);19
out.writeUTF(s);20
out.close();21
}catch(FileNotFoundException fe){22
System.err.println(fe);23
}catch(IOException ioe){24
System.out.println(ioe);25
}26
}27
}28

1
//创建简单程序读取数据
2
import java.io.*;
3
public class SimpleInputTest
4
{
5
public static void main(String[] args)
6
{
7
try{
8
FileInputStream fsin=new FileInputStream("sample.dat");
9
DataInputStream in=new DataInputStream(fsin);
10
double pi=in.readDouble();
11
int i=in.readInt();
12
boolean okay=in.readBoolean();
13
char ch=in.readChar();
14
String s=in.readUTF();
15
in.close();
16
System.out.println("pi="+pi+", i="+i);
17
System.out.println("okay="+okay+", ch="+ch);
18
System.out.println("s="+s);
19
}catch(FileNotFoundException fnfe){
20
System.err.println(fnfe);
21
}catch(IOException ioe){
22
System.err.println(ioe);
23
}
24
}
25
}
26
//创建简单程序读取数据2
import java.io.*;3
public class SimpleInputTest 4
{5
public static void main(String[] args) 6
{7
try{8
FileInputStream fsin=new FileInputStream("sample.dat");9
DataInputStream in=new DataInputStream(fsin);10
double pi=in.readDouble();11
int i=in.readInt();12
boolean okay=in.readBoolean();13
char ch=in.readChar();14
String s=in.readUTF();15
in.close();16
System.out.println("pi="+pi+", i="+i);17
System.out.println("okay="+okay+", ch="+ch);18
System.out.println("s="+s);19
}catch(FileNotFoundException fnfe){20
System.err.println(fnfe);21
}catch(IOException ioe){22
System.err.println(ioe);23
}24
}25
}26

1
//创建SafeCopy程序来复制文件
2
//这个程序可以在命令中接收源文件名和目标文件名
3
//只当目标文件不存在时,程序才将源文件复制到现在要创建的目标文件中去
4
//即不覆盖原来已存在的文件
5
import java.io.*;
6
public class SafeCopy
7
{
8
public static void copyFile(DataInputStream in, DataOutputStream out) throws IOException
9
{
10
try{
11
while(true)
12
out.writeByte(in.readByte());
13
}catch(EOFException eof){
14
return;
15
}
16
}
17
public static void main(String[] args)
18
{
19
20
String inFileName="E:\\101.asm", outFileName="E:\\500.txt";
21
File inFile=new File(inFileName);
22
File outFile=new File(outFileName);
23
if(!inFile.exists())
24
System.out.println(inFileName+"does not exist.");
25
else if(outFile.exists())
26
System.out.println(outFileName+"already exist.");
27
else{
28
try{
29
FileInputStream fsin=new FileInputStream(inFileName);
30
BufferedInputStream bfsin=new BufferedInputStream(fsin);
31
DataInputStream in=new DataInputStream(bfsin);
32
FileOutputStream fsout=new FileOutputStream(outFileName);
33
BufferedOutputStream bfsout=new BufferedOutputStream(fsout);
34
DataOutputStream out=new DataOutputStream(bfsout);
35
copyFile(in,out);
36
in.close();
37
out.close();
38
}catch(IOException ioe){
39
System.out.println(ioe);
40
}
41
}
42
}
43
}
44
//创建SafeCopy程序来复制文件2
//这个程序可以在命令中接收源文件名和目标文件名3
//只当目标文件不存在时,程序才将源文件复制到现在要创建的目标文件中去4
//即不覆盖原来已存在的文件5
import java.io.*;6
public class SafeCopy 7
{8
public static void copyFile(DataInputStream in, DataOutputStream out) throws IOException9
{10
try{11
while(true)12
out.writeByte(in.readByte());13
}catch(EOFException eof){14
return;15
}16
}17
public static void main(String[] args) 18
{19

20
String inFileName="E:\\101.asm", outFileName="E:\\500.txt";21
File inFile=new File(inFileName);22
File outFile=new File(outFileName);23
if(!inFile.exists())24
System.out.println(inFileName+"does not exist.");25
else if(outFile.exists())26
System.out.println(outFileName+"already exist.");27
else{28
try{29
FileInputStream fsin=new FileInputStream(inFileName);30
BufferedInputStream bfsin=new BufferedInputStream(fsin);31
DataInputStream in=new DataInputStream(bfsin);32
FileOutputStream fsout=new FileOutputStream(outFileName);33
BufferedOutputStream bfsout=new BufferedOutputStream(fsout);34
DataOutputStream out=new DataOutputStream(bfsout);35
copyFile(in,out);36
in.close();37
out.close();38
}catch(IOException ioe){39
System.out.println(ioe);40
}41
}42
}43
}44

1
//用户首先输入需要复制文件的名称和路径,然后再输入新的文件名和路径,完成后将旧文件和新文件内容显示在屏幕上
2
import java.io.*;
3
public class txcopy
4
{
5
public static void main(String[] args)
6
{
7
byte[] b1=new byte[255];
8
byte[] b2=new byte[255];
9
byte[] b3=new byte[2056];
10
byte[] b4=new byte[2056];
11
int a=0;
12
int b=0;
13
try{
14
System.out.println("请输入源文件名称: \n");
15
a=System.in.read(b1,0,255);
16
System.out.println("\n请输入目的文件名称: \n");
17
b=System.in.read(b2,0,255);
18
String sourceName=new String(b1,0,0,a-2);//把一个字节型数组转换成字符串数组
19
String desName=new String(b2,0,0,b-2);
20
System.out.println(sourceName.length());
21
FileInputStream fileInput=new FileInputStream(sourceName);
22
int bytes1=fileInput.read(b3,0,2056);
23
String sourceFile=new String(b3,0,0,bytes1);
24
FileOutputStream FileOutput=new FileOutputStream(desName);
25
FileOutput.write(b3,0,bytes1);
26
fileInput=new FileInputStream(desName);
27
int bytes2=fileInput.read(b4,0,2056);
28
String desFile=new String(b4,0,0,bytes2);
29
System.out.println("\n源文件内容为: \n");
30
System.out.println(sourceFile);
31
System.out.println("\n目的文件内容: \n");
32
System.out.println(desFile);
33
}catch(Exception e){
34
System.out.println(e.toString());
35
}
36
}
37
}
38
//用户首先输入需要复制文件的名称和路径,然后再输入新的文件名和路径,完成后将旧文件和新文件内容显示在屏幕上2
import java.io.*;3
public class txcopy 4
{5
public static void main(String[] args) 6
{7
byte[] b1=new byte[255];8
byte[] b2=new byte[255];9
byte[] b3=new byte[2056];10
byte[] b4=new byte[2056];11
int a=0;12
int b=0;13
try{14
System.out.println("请输入源文件名称: \n");15
a=System.in.read(b1,0,255);16
System.out.println("\n请输入目的文件名称: \n");17
b=System.in.read(b2,0,255);18
String sourceName=new String(b1,0,0,a-2);//把一个字节型数组转换成字符串数组19
String desName=new String(b2,0,0,b-2);20
System.out.println(sourceName.length());21
FileInputStream fileInput=new FileInputStream(sourceName);22
int bytes1=fileInput.read(b3,0,2056);23
String sourceFile=new String(b3,0,0,bytes1);24
FileOutputStream FileOutput=new FileOutputStream(desName);25
FileOutput.write(b3,0,bytes1);26
fileInput=new FileInputStream(desName);27
int bytes2=fileInput.read(b4,0,2056);28
String desFile=new String(b4,0,0,bytes2);29
System.out.println("\n源文件内容为: \n");30
System.out.println(sourceFile);31
System.out.println("\n目的文件内容: \n");32
System.out.println(desFile);33
}catch(Exception e){34
System.out.println(e.toString());35
}36
}37
}38

1
//写一个程序显示在程序的命令中指定的目录中所有的文件和目录
2
//包括文件大小及是文件还是目录类型
3
//按字母顺序排序显示,并且目录在文件之前显示
4
import java.io.*;
5
import java.util.*;
6
import java.io.File;
7
class FileNameSorter implements Comparator
8
{
9
public int compare(Object o1, Object o2)
10
{
11
File f1=(File)o1;
12
File f2=(File)o2;
13
if(f1.isDirectory())
14
{
15
if(f2.isDirectory())
16
return f1.getName().compareTo(f2.getName());
17
else
18
return -1;
19
}
20
else
21
{
22
if(f2.isDirectory())
23
return 1;
24
else
25
return f1.getName().compareTo(f2.getName());
26
}
27
}
28
public boolean equals(Object o1, Object o2)
29
{
30
return ((File)o1).getName().equals(((File)o2).getName());
31
}
32
}
33
public class Dir
34
{
35
private static void showDirInfo(File list[])
36
{
37
Arrays.sort(list, new FileNameSorter());
38
for(int i=0; i<list.length; i++)
39
{
40
if(list[i].isDirectory())
41
System.out.print("DIRECTORY");
42
else
43
System.out.print(list[i].length()+"bytes");
44
System.out.println("\t"+list[i]);
45
}
46
}
47
public static void main(String[] args)
48
{
49
// File path=new File(System.getProperty("user.dir"));//用户没有提供目录,则使用当前目录
50
File path=new File("D:\\j2sdk1.4.2");
51
if(args.length>0)
52
path=new File(args[0]);
53
if(path.exists()&&path.isDirectory())
54
showDirInfo(path.listFiles());
55
else
56
System.out.println("path not found or not directory");
57
}
58
}
59
//写一个程序显示在程序的命令中指定的目录中所有的文件和目录2
//包括文件大小及是文件还是目录类型3
//按字母顺序排序显示,并且目录在文件之前显示4
import java.io.*;5
import java.util.*;6
import java.io.File;7
class FileNameSorter implements Comparator8
{9
public int compare(Object o1, Object o2)10
{11
File f1=(File)o1;12
File f2=(File)o2;13
if(f1.isDirectory())14
{15
if(f2.isDirectory())16
return f1.getName().compareTo(f2.getName());17
else18
return -1;19
}20
else21
{22
if(f2.isDirectory())23
return 1;24
else25
return f1.getName().compareTo(f2.getName());26
}27
}28
public boolean equals(Object o1, Object o2)29
{30
return ((File)o1).getName().equals(((File)o2).getName());31
}32
}33
public class Dir34
{35
private static void showDirInfo(File list[])36
{37
Arrays.sort(list, new FileNameSorter());38
for(int i=0; i<list.length; i++)39
{40
if(list[i].isDirectory())41
System.out.print("DIRECTORY");42
else43
System.out.print(list[i].length()+"bytes");44
System.out.println("\t"+list[i]);45
}46
}47
public static void main(String[] args) 48
{49
// File path=new File(System.getProperty("user.dir"));//用户没有提供目录,则使用当前目录50
File path=new File("D:\\j2sdk1.4.2");51
if(args.length>0)52
path=new File(args[0]);53
if(path.exists()&&path.isDirectory())54
showDirInfo(path.listFiles());55
else56
System.out.println("path not found or not directory");57
}58
}59



浙公网安备 33010602011771号