1.從控制臺(tái)讀入字符,字符串
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 結(jié)束
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.讀文件,寫(xiě)文件
從file.txt
文件中讀取數(shù)據(jù),然后存放到dest.txt
文件中。并獲取這些數(shù)據(jù)。
file.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是表示不從之前的文件末尾繼續(xù)寫(xiě),是覆蓋原文件的
//true是指在dest.txt文件末尾接著寫(xiě)
String str=br.readLine();//讀file的每一行
Vector<double []> v=new Vector<>();//建立向量v用來(lái)存儲(chǔ)數(shù)據(jù)
while(str!=null)
{
bw.write(str);//從file中讀取的每一行寫(xiě)入dest中
bw.write("\r\n");//每一行結(jié)束后進(jìn)行換行
String [] arrStr=str.split(" ");
//因?yàn)橐恍杏?個(gè)數(shù)據(jù)以空格隔開(kāi),那么可以用split函數(shù)進(jìn)行分割,
//存放在 arrStr數(shù)組中
double [] d=new double[2];
for(int i=0;i<2;i++)
{
d[i]=Double.parseDouble(arrStr[i]);//將字符串轉(zhuǎn)換成double型
}
v.add(d);//添加到向量v中
str=br.readLine();//繼續(xù)讀下一行
}
bw.flush();
br.close();
bw.close();
//輸出向量v中的內(nèi)容
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();
}
}
}