java基本输入输出?java怎么输入输出
其实java基本输入输出的问题并不复杂,但是又很多的朋友都不太了解java怎么输入输出,因此呢,今天小编就来为大家分享java基本输入输出的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
java如何输入一个字符 还有输入“5,6”如何输出它们的值;
/**
这是一个可执行例子,不知道是不是你想要的,有问题请留言。
*/
import java.util.Scanner;
public class ScanDemo{
public static void main(String[] args){
//定义输入对象
/*
* new Scanner()---定义一个输入流对象
* System.in叫做标准输入.因为输入的方式很多,键盘输入,扫描输入等等。
*所谓的标准输入就是键盘输入。
*/
Scanner scanner= new Scanner(System.in);
//定义一个变量,用来存储键盘输入的数据。
String str;
//从键盘进行输入,并把输入的值放到str变量中.
/*
*可以有很多种的输入方式: scanner.nextInt()等等.
* scanner.next()这是是字符串输入,一般都是用这个,因为整数也可以看成是特殊的字符串,
*需要整数的话,在进行强制转型。
*
*不然如果用nextInt(),但是用户输入的不是 int类型的话,那么是会报错的。
*如果用next()不会报错。我们可以在接收完参数之后再进行判断,然后告诉用户输入的不符合条件,让其重新输入。
*
*对于输入字符也是一样的,可以进行判断,不然用户不输入字符那么也是会报错的,你无法控制用户的输入。
*所以只能输入之后在判断。
*/
System.out.println("请您在Console输入数据:");
str= scanner.next();
System.out.println("您输入为:"+str);
}
}
java 输入输出流 (被采纳为答案者加100分)
其中BufferedInputStream是FileInputStream的子类,你可以理解成同样处理一个文件,BufferedInputStream效率更高,原因是BufferedInputStream采用了更高效的字节流处理方式,
BufferedInputStream才用缓冲流把内在的缓冲器连接到I/O流,允许java程序对多个字节同时操作,这样就提高了效率。
inputstreamreader的构造函数带两个参数,一是关联到的文件,二是字符解码方式.所以实际上通过inputstreamreader实例读出来的东西已经不是磁盘上原始的字节数据了,而是根据你指定的解码方式(如果你没有指定,则使用系统缺省的,win2000下是gbk/gb2312)把字节流转换成了字符流,注意字节流和字符流的区别,一个字节就是8比特位(32位机器上),而一个字符含多少字节则与不同的编码/解码方式有关了,如gbk是一字节,utf-8是1-3的变长字节,utf-16是2个定长字节.
于是值得你注意的就是当你用inputstreamreader读文件时,你应该知道该文件被存储时是用什么方式编码的,否则你指定错了解码方式,读出来的就是乱码.但是退一步来说,在全英文环境下,问题也没这严重.因为所有的字符集在前七位上都是与ascii兼容的(我猜的,也许有的不是),然而当你的程序涉及中文字符时,肯定是会出错了.
那么fileinputstream的特点呢?它的构造函数就一个,即关联到的文件,既然没有指定解码方式,那它所做的就是只以字节流的方式读出文件而不做任何处理,你应该用一个字节数组来接受它,对该数组你以后还可以做任何想做的操作。
给你个例子,自己去测试
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.*;
public class test{
/* public static void main(String[] args){
String str=new String("Face recognition in the thermal infrared domain has received relatively little attention in the literature in comparison with recognition in visible-spectrum imagery");
StringTokenizer token=new StringTokenizer(str);
Hashtable ht=new Hashtable();
while(token.hasMoreTokens()){
String temp=new String(token.nextToken());
ht.put(temp,temp);
}
Enumeration en=ht.keys();
while(en.hasMoreElements()){
Object obj=en.nextElement();
System.out.print("KEY_NO:"+obj);
System.out.println("="+ht.get(obj));
}
}
*/
public static void main(String[] args){
try{
String file1="d:\\1.doc";
String file2="d:\\2.doc";
copyFile(file1,file2);
readFile(file2);
//fileCheck("d:\\test1.txt");
// readFile("D:\\test1.txt");
// readFileByte("D:\\test1.txt");
// readFileByFile("D:\\test1.txt");
} catch(IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void testFile() throws IOException{
copyFile("D:\\test1.txt","D:\\test2.txt");
}
public static void copyFile(String inName,String outName) throws IOException
{
File tmp= new File(outName);
if(!tmp.canRead())tmp.createNewFile();
BufferedInputStream in= new BufferedInputStream(new FileInputStream(inName));
BufferedOutputStream out= new BufferedOutputStream(new FileOutputStream(outName));
copyFile(in,out,true);
}
public static void readFile(String inName) throws IOException
{
BufferedReader read= new BufferedReader(new InputStreamReader(new FileInputStream(inName)));
String b;
while((b=read.readLine())!=null)
print( b);
}
public static void readFileByte(String inName) throws IOException
{
BufferedInputStream read= new BufferedInputStream(new FileInputStream(inName));
int b= 0;
while((b=read.read())!=-1)
System.out.print((char)b);
}
public static void readFileByFile(String name) throws IOException
{
File tmp= new File(name);
FileReader fr= new FileReader(tmp);
BufferedReader br= new BufferedReader(fr);
String b;
while((b=br.readLine())!=null)
print(b);
}
public static void copyFile(InputStream in,OutputStream out, boolean close) throws IOException{
int b;
while((b=in.read())!=-1)
{
out.write(b);
}
in.close();
if(close)
out.close();
}
public static void print(Object o)
{
System.out.println(o);
}
public static void fileCheck(String name) throws IOException
{
print("---"+name+"---");
File f= new File(name);
if(!f.exists())
{
print("fle not exist!");
return;
}
print("Canonical name:"+f.getCanonicalPath());
String p= f.getParent();
if(p!=null)
print("Parent directory:"+p);
if(f.canRead())print("file can be read!");
if(f.canWrite())print("file can be writable!");
Date d= new Date();
d.setTime(f.lastModified());
print("last modified time:"+d);
if(f.isFile())
{
print("file size is:"+f.length()+" bytes");
}else if(f.isDirectory()){print("is a directry!");}
else{
print("neither a directory or a file!");
}
print("");
}
}
java怎么输出
java控制台输出由print()和 println()来完成最为简单。这两种方法由rintStream(System.out引用的对象类型)定义。尽管System.out是一个字节流,用它作为简单程序的输出是可行的。因为PrintStream是从OutputStream派生的输出流,它同样实现低级方法write(),write()可用来向控制台写数据。PrintStream定义的write()的最简单的形式如下:
void write(int byteval)
该方法按照byteval指定的数目向文件写字节。尽管byteval定义成整数,但只有低位的8个字节被写入。下面的短例用 write()向屏幕输出字符“A”,然后是新的行。
// Demonstrate System.out.write().
class WriteDemo{
public static void main(String args[]){
int b;
b='A';
System.out.write(b);
System.out.write('
');
}
}
一般不常用write()来完成向控制台的输出(尽管这样做在某些场合非常有用),因为print()和println()更容易用。
四、PrintWriter类
尽管Java允许用System.out向控制台写数据,但建议仅用在调试程序时或在例程中。对于实际的程序,Java推荐的向控制台写数据的方法是用PrintWriter流。PrintWriter是基于字符的类。用基于字符类向控制台写数据使程序更为国际化。PrintWriter定义了多个构造函数,这里所用到的一个如下:
PrintWriter(OutputStream outputStream, boolean flushOnNewline)
outputStream是OutputStream类的对象,flushOnNewline控制Java是否在println()方法被调用时刷新输出流。如果flushOnNewline为true,刷新自动发生,若为false,则不发生。
PrintWriter支持所有类型(包括Object)的print()和println()方法,这样,就可以像用ystem.out那样用这些方法。如果遇到不同类型的情况,PrintWriter方法调用对象的toString()方法并打印结果。用PrintWriter向外设写数据,指定输出流为System.out并在每一新行后刷新流。例如这行代码创建了与控制台输出相连的PrintWriter类。
PrintWriter pw= new PrintWriter(System.out, true);
下面的应用程序说明了用PrintWriter处理控制台输出的方法:
// Demonstrate PrintWriter
import java.io.*;
public class PrintWriterDemo{
public static void main(String args[]){
PrintWriter pw= new PrintWriter(System.out, true);
pw.println("This is a string");
int i=-7;
pw.println(i);
double d= 4.5e-7;
pw.println(d);
}
}
该程序的输出如下:
This is a string
-7
4.5E-7
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!