1.从控制台读入字符,字符串
import java.io.*;
import java.util.Scanner;
public class stream {
public static void main(String args[]) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("please input the characters until you input the 'q':");
char c;
//读字符,直到输入q 结束
c=(char)br.read();
while(c!='q')
{
System.out.println(c);
c=(char)br.read();
}
//读字符串(方法1)
Scanner sc=new Scanner(System.in);
for(int i=0;i<3;i++)
{
String str=sc.next();
System.out.println(str);
}
//读字符串(方法2)
String str=null;
while(str!="end")
{
str=br.readLine();
System.out.println(str);
}
}
}
2.读文件,写文件
从file.txt
文件中读取数据,然后存放到dest.txt
文件中。并获取这些数据。
代码如下:
import java.io.*;
import java.util.Iterator;
import java.util.Vector;
public class stream1 {
public static void main(String args[]) throws FileNotFoundException,IOException{
File file=new File("file.txt");//建立file.txt文件
File dest=new File("dest.txt");//建立dest.txt文件
BufferedReader br=new BufferedReader(new FileReader(file));
BufferedWriter bw = new BufferedWriter(new FileWriter(dest,false));
//false是表示不从之前的文件末尾继续写,是覆盖原文件的
//true是指在dest.txt文件末尾接着写
String str=br.readLine();//读file的每一行
Vector<double []> v=new Vector<>();//建立向量v用来存储数据
while(str!=null)
{
bw.write(str);//从file中读取的每一行写入dest中
bw.write("\r\n");//每一行结束后进行换行
String [] arrStr=str.split(" ");
//因为一行有2个数据以空格隔开,那么可以用split函数进行分割,
//存放在 arrStr数组中
double [] d=new double[2];
for(int i=0;i<2;i++)
{
d[i]=Double.parseDouble(arrStr[i]);//将字符串转换成double型
}
v.add(d);//添加到向量v中
str=br.readLine();//继续读下一行
}
bw.flush();
br.close();
bw.close();
//输出向量v中的内容
Iterator<double[]> it=v.iterator();
while(it.hasNext())
{
double []temp=new double[2];
temp=it.next();
for(int i=0;i<2;i++)
{
System.out.print(temp[i]+" ");
}
System.out.println();
}
}
}