//编写一个程序,将10个整型数据写入文件,再读出来求和。
import java.io.*;
public class FilterStreamInOut
{
public static void main(String[]args)throws IOException
{
OutputStream out=new FileOutputStream("number.txt");
InputStream ips=new FileInputStream("number.txt");
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
System.out.println("please input the integer number(end with -1): ");
String str=in.readLine();
byte b=0;
while(!str.equals("-1"))
{
b=Byte.parseByte(str);
out.write(b);
str=in.readLine();
}
int a=ips.read();
int sum=0;
while(a!=-1)
{
sum+=a;
System.out.print(a+" ");
a=ips.read();
}
System.out.println();
System.out.println("the sum is "+sum);
}
}为什么写入文件的是一堆乱码???
知道的请指正一下,谢谢!
import java.io.*;
public class FilterStreamInOut
{
public static void main(String[]args)throws IOException
{
OutputStream out=new FileOutputStream("number.txt");
InputStream ips=new FileInputStream("number.txt");
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
System.out.println("please input the integer number(end with -1): ");
String str=in.readLine();
byte b=0;
while(!str.equals("-1"))
{
b=Byte.parseByte(str);
out.write(b);
str=in.readLine();
}
int a=ips.read();
int sum=0;
while(a!=-1)
{
sum+=a;
System.out.print(a+" ");
a=ips.read();
}
System.out.println();
System.out.println("the sum is "+sum);
}
}为什么写入文件的是一堆乱码???
知道的请指正一下,谢谢!
首先一边从System.in读取数据,一边解析成整型并写入文件,然后文件流instream.close然后打开文件流outstream ,读取数据
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;public class IoTester1 { /**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
FileOutputStream fos=new FileOutputStream("org/possible/io/int.txt");
DataOutputStream dos=new DataOutputStream(fos);
System.out.println("请输入要写入的数值,以-1结束!!!");
while(true){
String str=new BufferedReader(new InputStreamReader(System.in)).readLine();
int i=0;
try{
i=Integer.parseInt(str);
}catch(RuntimeException e){
throw new RuntimeException("只能传入正确数值!!!");
}
if(i==-1)
break;
dos.writeInt(i);
}
dos.close();
FileInputStream fis=new FileInputStream("org/possible/io/int.txt");
DataInputStream dis=new DataInputStream(fis);
int totalBytes=dis.available();//写入总字节数
int sum=0;//要计算的总和
while(totalBytes>0){
sum+=dis.readInt();//每次读4字节
totalBytes=totalBytes-4;
}
dis.close();
System.out.println(sum);
}}
在我机器上运行,int.txt打开后也是乱码,怎么修改
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.PrintWriter;public class IoTester2 { /**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
FileWriter fw=new FileWriter("org/possible/io/int2.txt");
PrintWriter bw=new PrintWriter(fw);
System.out.println("请输入要写入的数值,以-1结束!!!");
while(true){
String str=new BufferedReader(new InputStreamReader(System.in)).readLine();
int i=0;
try{
i=Integer.parseInt(str);
}catch(RuntimeException e){
throw new RuntimeException("只能传入正确数值!!!");
}
if(i==-1)
break;
bw.println(str);
}
bw.close();
FileReader fr=new FileReader("org/possible/io/int2.txt");
BufferedReader br=new BufferedReader(fr);
int sum=0;//要计算的总和
String str=null;
while((str=br.readLine())!=null){
sum+=new Integer(str);//每次读4字节
}
br.close();
System.out.println("总和是:"+sum);
}}
ps:LZ去看看书吧,什么是字节流,什么是字符流