String str1 = "1";
String str2 = "2";
String str3 = "3";
String str = str1 + str2 +str3; FileOutputStream out = new FileOutputStream( fileName );
out.write( str );
out.close();
String str2 = "2";
String str3 = "3";
String str = str1 + str2 +str3; FileOutputStream out = new FileOutputStream( fileName );
out.write( str );
out.close();
String data = "";
BufferedReader Reader = new BufferedReader(new FileReader("file.txt"));
while(true){
str = Reader.readLine();
if (str == null) break;
data += str;
}
Reader.close();
//return data;
telenths(非法操作)是实现将文件读成穿串。
我的意思是说,文件读成的串是变长的。
我要将这三个串存为文件。
在以后从该文件中将三个串分别读出来。怎么实现。
顺便问一下:有谁懂签名啊?请问用DSA算法对定长的串签的名长度是否固定?
非常感谢。
因为串里可能包含 \n
所以读文件时必须得知道串的长度文件包含两部分信息
N
Data
读文件时先读取文件长度,再读取数据,同时与长度比较
下面是我的 Code :
//*****************************************
写文件:
FileWriter Writer = new FileWriter("file.txt");
Writer.write(Data1.length()+"\n");
Writer.write(Data1+"\n"); Writer.write(Data2.length()+"\n");
Writer.write(Data2+"\n"); Writer.write(Data3.length()+"\n");
Writer.write(Data3+"\n"); Writer.flush();
Writer.close();//******************************************
读文件:
String str = "";
String[] Data = {"","",""};
int size;
try{
BufferedReader Reader = new BufferedReader(new FileReader("file.txt"));
for(int i = 0;i < 3;i++){
while(true){
str = Reader.readLine();
if(str.equals("")) continue;
size = new Integer(str).intValue(); //Exception
break;
}
while(true){
str = Reader.readLine();
if (str == null) break;
Data[i] += str;
if(Data[i].length() < size) continue;
else break;
}
}
Reader.close();
}catch(Exception e){}
//**************************************************
可是好像有点问题,也许还有更好的思路,大家拿出来讨论讨论
非常感谢你的程序。
但我有一个问题:这里一定要考虑 \N 吗?
我的具体意思是这样的:
(1)有一个文件file.txt(这个文件是由用户选的,长度不定)。
(2)有一个50字节的串str1。这个串是我以前将一个结构用ObjectOutputStream写到文件中的,现在将它读出来。不一定读成串的形式,我现在只会把他用ObjectInputStream读成以前的结构。但我想,应该可以把它读为串吧。因为保存他的文件可以用记事本打开。
(3)有另一个串str2是60字节的。
我想将这三部分用一个文件保存。用邮件发给对方。对方收到我发的文件,能将这三部分分别读出来。
我的意思是,只要能把他们读出就可。不一定要是串的形式。
能不能不考虑 文件中的"\n"这样的东西?
建议你这样做:
文件以此写入:
50字节的串str1
60字节的串str2
file.txt 的内容读文件时可以用 RandomAccessFile(随机存取)
先读取50个字节 -> byte[] -> str1
再读取60个字节 -> byte[] -> str2
最后用 readLine() 方法把剩下的读完至于 \n 我想因该考虑进去,
因为 Java 在读文件时会把 \n 也作为一个 byte
而 readLine() 是以 \n 作为结束标志的
见得很具体,很好啊。
快给他分数把