java输出是行列猫鸡狗猪_文件的输出与载入之java操作

一、前言

学习java没多久,关键是没怎么系统学过。都是看别人的代码来学习的。今天就把一直以来让我头痛的java  IO 的一些基本操作来记录下来,加深记忆。

二、java导入文件到内存中

首先放一个完整的加载函数(这里我的返回值是定义的一个稀疏矩阵类)

public SMatrix Load(String file, String delimeter){

Map,Integer> triples = new HashMap,Integer>();

try{

File f = new File(file);

FileReader fr = new FileReader(f);

BufferedReader br = new BufferedReader(fr);

String line;

while((line = br.readLine()) != null){

String[] str = line.trim().split(delimeter);

ArrayList s = new ArrayList();

for(int i = 0;i < str.length - 1; i++){

s.add(Integer.parseInt(str[i]));

}

triples.put(s, Integer.parseInt(str[str.length - 1]));

}

br.close();

fr.close();

}catch(IOException e){

e.printStackTrace();

}

SMatrix sm = new SMatrix(triples);

return sm;

}

解析:所以基本的步骤是:

try{

File f = new File(file);//Step1:利用文件的路径file,创建文件类

FileReader fr = new FileReader(f);//Step2:创建文件读入类

BufferedReader br = new BufferedReader(fr);//Step3:创建读入的缓存类

String line;

while((line = br.readLine()) != null){//循环读入文件的每一行

String[] str = line.trim().split(delimeter);//将每一行按字符串delimeter分割成一个字符串数组

XXXXXXXXX;//TODO:接下来就将得到的字符串数组按照你构造的对象来赋值等等。这里面要注意字符串到整型或Double的转化等。

}

br.close();//关闭缓存读入

fr.close();//关闭文件读入

}catch(IOException e){

e.printStackTrace();

}

三、java将数据从内存输出到硬盘文件中

定义输出文件路径:例如,String of = "D:/data/blablabal.txt";

String outFile = "data/eigenVector.txt";

try{

File f = new File(outFile);//构造输出文件类

FileOutputStream fout = new FileOutputStream(f);//构造一个输出文件流fout.write("@RELATION\teigenVector\n".getBytes());//主要函数就是 write(args),里面的参数要求是byte[]型的。for(int i = n-k;i

fout.write(("@ATTRIBUTE\t"+i + "\tREAL\n").getBytes());

}

fout.write("@DATA\n".getBytes());

if(k <= n){

for(int i = 0;i < m;i++){

for(int j = n-k;j

Double temp = new Double(eigVector.getArray()[i][j]);

String tem = temp.toString();

fout.write((tem + "\t").getBytes());

}

fout.write(("\n").getBytes());

}

}

}

catch(IOException e){

e.printStackTrace();

}

比如你想写一段文字:“I am a student,and I come from China”

fout.write(("I am a student,and I come from China").getBytes());

相应的输出一个table键为:

fout.write(("\t").getBytes());

输出换行:

fout.write(("\n").getBytes());

等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值