当前位置: 技术问答>java相关
请教关于在文件存取的问题
来源: 互联网 发布时间:2015-09-21
本文导语: 我想程序生成一个数据文件 大概格式如下: 1 123 23 2 121 122 3 45 345 4 34 32 …… 就是把一个二维数组导入文件 然后,我又怎么 把它读取出来还原到数组 因为没有好书,看了一下,还是云里雾里的 希望高手指点...
我想程序生成一个数据文件
大概格式如下:
1 123 23
2 121 122
3 45 345
4 34 32
……
就是把一个二维数组导入文件
然后,我又怎么
把它读取出来还原到数组
因为没有好书,看了一下,还是云里雾里的
希望高手指点一下
如果有类似的smaple code,那就多谢了。
大概格式如下:
1 123 23
2 121 122
3 45 345
4 34 32
……
就是把一个二维数组导入文件
然后,我又怎么
把它读取出来还原到数组
因为没有好书,看了一下,还是云里雾里的
希望高手指点一下
如果有类似的smaple code,那就多谢了。
|
package filesystembinder;
import java.io.*;
import java.util.StringTokenizer;
public class Untitled1
{
public Untitled1()
{
String[] dest = new String[100];
try{
String fileContent = ReadFile("d:\a.txt");
TakeToArrary(fileContent,dest);
ShowArrayInfo(dest);
} catch(Exception e) {
}
}
public static void main(String[] args)
{
Untitled1 untitled11 = new Untitled1();
}
private String ReadFile(String fileName) throws IOException {
File file = new File(fileName) ;
int fileLength = (int) file.length() ;
int charRead = 0 ;
char[] content = new char[fileLength] ;
FileReader reader = new FileReader(file) ;
while(reader.ready()) {
charRead = reader.read(content,charRead,fileLength - charRead);
}
return new String(content,0,fileLength - 1);
}
private void TakeToArrary(String content, String[] destArr) {
int i = 0 ;
StringTokenizer st = new StringTokenizer(content);
while (st.hasMoreTokens()) {
destArr[i++] = st.nextToken() ;
}
}
private void ShowArrayInfo(String[] Arr) {
for(int i=0 ; i我就是因为用什么记事本打不开,以为有问题,所以才问的。
>那要怎么样才能保证记事本也可以打开呢。
>还有个问题在写文件的时候,怎么才能够换行呢?
你是不是想存成文本文件,有格式,可以在记事本里编辑?
那就用字符流,你得把int i =345 转换为 String i = "345"
存到文件里,你可以以white space为分割,也就是说
空格 tab 回车 都被视作分割符
如果文件很小,可以一次全读出来,再用StringTokenizer挑出来
import java.io.*;
import java.util.StringTokenizer;
public class Untitled1
{
public Untitled1()
{
String[] dest = new String[100];
try{
String fileContent = ReadFile("d:\a.txt");
TakeToArrary(fileContent,dest);
ShowArrayInfo(dest);
} catch(Exception e) {
}
}
public static void main(String[] args)
{
Untitled1 untitled11 = new Untitled1();
}
private String ReadFile(String fileName) throws IOException {
File file = new File(fileName) ;
int fileLength = (int) file.length() ;
int charRead = 0 ;
char[] content = new char[fileLength] ;
FileReader reader = new FileReader(file) ;
while(reader.ready()) {
charRead = reader.read(content,charRead,fileLength - charRead);
}
return new String(content,0,fileLength - 1);
}
private void TakeToArrary(String content, String[] destArr) {
int i = 0 ;
StringTokenizer st = new StringTokenizer(content);
while (st.hasMoreTokens()) {
destArr[i++] = st.nextToken() ;
}
}
private void ShowArrayInfo(String[] Arr) {
for(int i=0 ; i我就是因为用什么记事本打不开,以为有问题,所以才问的。
>那要怎么样才能保证记事本也可以打开呢。
>还有个问题在写文件的时候,怎么才能够换行呢?
你是不是想存成文本文件,有格式,可以在记事本里编辑?
那就用字符流,你得把int i =345 转换为 String i = "345"
存到文件里,你可以以white space为分割,也就是说
空格 tab 回车 都被视作分割符
如果文件很小,可以一次全读出来,再用StringTokenizer挑出来
|
换行的时候打入一个println就可以了。