
JAVA一个读写文件的题目
有一个文本文件里面有一些数格式如下:2,3,0,1;5,2,4,6;等等现在要打开这个文件读出里面的数用“;”隔开的4个数两两一组作为两个点的坐标,计算这两个点的距离(就...
有一个文本文件里面有一些数 格式如下:
2,3,0,1;5,2,4,6;等等
现在要打开这个文件 读出里面的数用“;”隔开的4个数两两一组作为两个点的坐标,计算这两个点的距离(就是开方(X2-X1)^2+ (Y2-Y1)^2)) 把算出来的距离放在一个数组里面
把这个数组写进一个文件 再读出来并PRINT出来
急用 谢谢 可以加分
有没有具体的程序 因为我看书看不明白 尤其是读写文件这块 可以加分的 展开
2,3,0,1;5,2,4,6;等等
现在要打开这个文件 读出里面的数用“;”隔开的4个数两两一组作为两个点的坐标,计算这两个点的距离(就是开方(X2-X1)^2+ (Y2-Y1)^2)) 把算出来的距离放在一个数组里面
把这个数组写进一个文件 再读出来并PRINT出来
急用 谢谢 可以加分
有没有具体的程序 因为我看书看不明白 尤其是读写文件这块 可以加分的 展开
4个回答
展开全部
package test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class JavaIo {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String fileName="c:/test.txt";
String resultFileName="c:/result.txt";
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
String line;
File write = new File(resultFileName);
BufferedWriter bw = new BufferedWriter(new FileWriter(write));
while((line=br.readLine()) != null ){
StringTokenizer st=new StringTokenizer(line,";");
String str1=st.nextToken();
double d1=getTheNumber(str1);
String str2=st.nextToken();
double d2=getTheNumber(str2);
Double value=d2-d1;
System.out.println("差值为"+value);
if(value!=null){
bw.write(value+""+"\r\n");
}
}
bw.close();
br.close();
}
/**
* 获得点之间的值
* @param str1
* @return
*/
private static double getTheNumber(String str1) {
String [] strs=new String [4];
StringTokenizer st1=new StringTokenizer(str1,",");
strs[0]=st1.nextToken();
strs[1]=st1.nextToken();
strs[2]=st1.nextToken();
strs[3]=st1.nextToken();
int i,j,x,y;
i=Integer.valueOf(strs[0]);
j=Integer.valueOf(strs[1]);
x=Integer.valueOf(strs[2]);
y=Integer.valueOf(strs[3]);
double num=Math.sqrt(((i-x)*(i-x))+((j-y)*(j-y)));
return num;
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class JavaIo {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String fileName="c:/test.txt";
String resultFileName="c:/result.txt";
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
String line;
File write = new File(resultFileName);
BufferedWriter bw = new BufferedWriter(new FileWriter(write));
while((line=br.readLine()) != null ){
StringTokenizer st=new StringTokenizer(line,";");
String str1=st.nextToken();
double d1=getTheNumber(str1);
String str2=st.nextToken();
double d2=getTheNumber(str2);
Double value=d2-d1;
System.out.println("差值为"+value);
if(value!=null){
bw.write(value+""+"\r\n");
}
}
bw.close();
br.close();
}
/**
* 获得点之间的值
* @param str1
* @return
*/
private static double getTheNumber(String str1) {
String [] strs=new String [4];
StringTokenizer st1=new StringTokenizer(str1,",");
strs[0]=st1.nextToken();
strs[1]=st1.nextToken();
strs[2]=st1.nextToken();
strs[3]=st1.nextToken();
int i,j,x,y;
i=Integer.valueOf(strs[0]);
j=Integer.valueOf(strs[1]);
x=Integer.valueOf(strs[2]);
y=Integer.valueOf(strs[3]);
double num=Math.sqrt(((i-x)*(i-x))+((j-y)*(j-y)));
return num;
}
}
展开全部
public String getFileContent(String filename, String charsetName) {
StringBuffer sb = new StringBuffer();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filename), charsetName));
String tmp = br.readLine();
int count = 1;
while (tmp != null && (lineCount > 0 && count <= lineCount || lineCount <= 0)) {
sb.append(tmp);
tmp = br.readLine();
}
br.close();
return sb.toString();
}
String[] tmp = string.split(";");
StringBuffer sb = new StringBuffer();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filename), charsetName));
String tmp = br.readLine();
int count = 1;
while (tmp != null && (lineCount > 0 && count <= lineCount || lineCount <= 0)) {
sb.append(tmp);
tmp = br.readLine();
}
br.close();
return sb.toString();
}
String[] tmp = string.split(";");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我提供思路:先把整个文件读在一个StringTokenizer中,然后根据token为“;”,把该stringtokenizer分成两个stringtokenizer,然后各个stringtokenizer再由token为“,”分解为4个数即可读取各个数了。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
本科里面的基本题目!翻翻书很简单!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询