62,615
社区成员
发帖
与我相关
我的任务
分享
import java.nio.file.Paths;
import java.nio.file.Path;
import java.nio.file.Files;
import static java.nio.file.StandardOpenOption.*;
import java.io.DataOutputStream;
import java.io.DataInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.util.ArrayList;
public class Test{
public static void main(String[] args){
String name1 = "张三";
String name2 = "马文才";
String name3 = "司马相如";
name1 = process(name1);
name2 = process(name2);
name3 = process(name3);
System.out.println("处理后名字为:");
System.out.printf("'%s'\n'%s'\n'%s'\n",name1,name2,name3);
System.out.println("将名字写入文件.");
writeNames(name1,name2,name3);
System.out.println("从文件中读取姓名...");
ArrayList<String> names = readNames();
System.out.println("输出文件中的姓名 ...");
for(String name : names){
System.out.printf("'%s'\n",name);
}
}
private static String process(String name){
int fixed = 16;
int enSpace = 16 - name.getBytes().length;
return String.format("%" + enSpace + "s","") + name;
}
private static void writeNames(String ... names){
try{
Files.deleteIfExists(path);
}catch(IOException e){
e.printStackTrace();
System.exit(1);
}
try(DataOutputStream out = new DataOutputStream(
new BufferedOutputStream(
Files.newOutputStream(path,WRITE,CREATE)));){
byte[] bs = null;
for(String name : names){
bs = name.getBytes();
out.write(bs,0,bs.length);
}
}catch(IOException e){
e.printStackTrace();
System.exit(1);
}
}
private static ArrayList<String> readNames(){
ArrayList<String> names = new ArrayList<>();
try(DataInputStream in = new DataInputStream(
new BufferedInputStream(
Files.newInputStream(path,READ)));){
byte[] bs = new byte[16];
while(in.read(bs) != -1){
names.add(new String(bs));
}
}catch(IOException e){
e.printStackTrace();
System.exit(1);
}
return names;
}
private static Path path = Paths.get(System.getProperty("user.dir")).resolve("data.bin");
}