Java输入输出,java输入输出包

http://www.itjxue.com  2023-01-05 22:21  来源:未知  点击次数: 

java输入输出流的本质是什么?

Java输入输出流的本质是I/O操作,是指使用Java进行输入输出操作。Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。

流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件、内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。

Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的。在这其中InputStream和OutputStream在早期的Java版本中就已经存在了,它们是基于字节流的,而基于字符流的Reader和 Writer是后来加入作为补充的。

Java的常用输入输出语句?

常用的输入语句是:

输入字符串:new Scanner(System.in).next();

输入整数:new Scanner(System.in).nextInt();

输入小数:new Scanner(System.in).nextDouble();

常用的输出语句:

换行输出: System.out.println(变量或字符串);

非换行输出: System.out.print(变量或字符串);

换行输出错误提示(默认是红字):System.err.println(变量或字符串);

不换行输出错误提示(默认是红字): System.err.print(变量或字符串));

Java中如何实现文件的输入和输出?

程序如下:\x0d\x0a \x0d\x0a\x0d\x0aFile file1 = new File("/home/a123/a"); \x0d\x0a\x0d\x0a if (file1.exists()) { \x0d\x0a System.out.println("存在文件夹a"); \x0d\x0a } else { \x0d\x0a file1.mkdir(); // 文件夹的创建 创建文件夹/home/a123/a \x0d\x0a } \x0d\x0a File file2 = new File("/home/a123/a/test"); \x0d\x0a if (file2.exists()) { \x0d\x0a System.out.println("存在文件夹或者文件test"); \x0d\x0a } else { \x0d\x0a try { \x0d\x0a file2.createNewFile(); // 文件的创建,注意与文件夹创建的区别 \x0d\x0a } catch (IOException e) { \x0d\x0a // TODO Auto-generated catch block \x0d\x0a e.printStackTrace(); \x0d\x0a } \x0d\x0a } \x0d\x0a \x0d\x0a /** \x0d\x0a * 最简单的文件读写方法是使用类FileWriter \x0d\x0a * (它的父类依次是java.io.OutputStreamWriter——java.io.Writer——java.lang.Object ); \x0d\x0a */ \x0d\x0a \x0d\x0a // 下面是向文件file2里面写数据 \x0d\x0a try { \x0d\x0a FileWriter fileWriter = new FileWriter(file2); \x0d\x0a String s = new String("This is a test! \n" + "aaaa"); \x0d\x0a fileWriter.write(s); \x0d\x0a fileWriter.close(); // 关闭数据流 \x0d\x0a\x0d\x0a} catch (IOException e) { \x0d\x0a // TODO Auto-generated catch block \x0d\x0a e.printStackTrace(); \x0d\x0a } \x0d\x0a \x0d\x0a /* \x0d\x0a * 这样写数据的话,是完全更新文件test里面的内容,即把以前的东西全部删除,重新输入。 \x0d\x0a * 如果不想删除以前的数据,而是把新增加的内容增添在文件末尾处。只需要在创建FileWriter对象时候,使用另外一个构造函数即可: \x0d\x0a * FileWriter fileWriter=new FileWriter(file2,true); \x0d\x0a */ \x0d\x0a \x0d\x0a // 下面是从文件file2读东西 \x0d\x0a try { \x0d\x0a FileReader fileReader = new FileReader(file2); \x0d\x0a String s = null; \x0d\x0a char ch; \x0d\x0a try { \x0d\x0a char[] c = new char[100]; \x0d\x0a fileReader.read(c,0,2); // 具体想得到文件里面的什么值(单个char?int?还是String?), \x0d\x0a System.out.println(c); \x0d\x0a fileReader.close(); \x0d\x0a \x0d\x0a } catch (IOException e) { \x0d\x0a // TODO Auto-generated catch block \x0d\x0a e.printStackTrace(); \x0d\x0a } \x0d\x0a \x0d\x0a } catch (FileNotFoundException e) { \x0d\x0a // TODO Auto-generated catch block \x0d\x0a e.printStackTrace(); \x0d\x0a } \x0d\x0a /** \x0d\x0a * 具体想得到文件里面的什么值(单个char?int?还是String?),需要知道不通read的不同用法: \x0d\x0a * 1. int read() 读取单个字符。 \x0d\x0a * 2. int read(char[] cbuf) 将字符读入数组。 可以再将字符型数组转化位字符串 \x0d\x0a * 3. int read(char[] cbuf,int off,int len) 将字符读入数组的某一部分。 \x0d\x0a * 这三个方法都返回一个int值,作用是:读取的字符数,如果已到达流的末尾,则返回 -1. \x0d\x0a */ \x0d\x0a \x0d\x0a }

(责任编辑:IT教学网)

更多