Java输入输出处理技术1
1.保存用户输入到文件
从键盘读入一行字符,写到文件output.txt中去。
package io;
import java.io.*;
public class MyFileOutput { public static void main(String[] args) {
FileInputStream fin;
FileOutputStream fout;
int ch;
try {
fin=new FileInputStream(FileDescriptor.in);
fout=new FileOutputStream("output.txt");
System.out.println("请输入一行字符:");
while((ch=fin.read())!='\r')
fout.write(ch);
fin.close();
fout.close();
System.out.println("文件写入成功!");
} catch (FileNotFoundException e) {
System.out.println("不能创建文件!");
}catch(IOException e){
System.out.println("输出流有误!");
} } }
2.显示文件内容
显示文本文件的内容。
package io;
import java.io.*;
public class TypeFile { public static void main(String[] args) {
FileInputStream fin;
FileOutputStream fout;
int ch;
if(args.length<1){
System.out.println("请指定文件名!");
return;
}
try {
fin=new FileInputStream(args[0]);
fout=new FileOutputStream(FileDescriptor.out);
while((ch=fin.read())!=-1)
fout.write(ch);
fin.close();
fout.close();
} catch (FileNotFoundException e) {
System.out.println("文件没有找到!");
} catch (IOException e) {
System.out.println("输入流有误!");
} } }
3.文件的复制
文件复制程序。
package io;
import java.io.*;
public class CopyFile { public static void main(String[] args) {
FileInputStream fin;
FileOutputStream fout;
int ch;
if(args.length!=2){
System.out.println("参数格式不对,应该为:java CopyFile 原文件名 目标文件名");
return;
}
try {
fin=new FileInputStream(args[0]);
fout=new FileOutputStream(args[1]);
while((ch=fin.read())!=-1)
fout.write(ch);
fin.close();
fout.close();
System.out.println("文件复制成功!");
} catch (FileNotFoundException e) {
System.out.println("文件没有找到!");
} catch (IOException e) {
System.out.println("读写文件有误!");
} } }
4.顺序输入流
顺序输入流示例。
package io;
import java.io.*;
import java.util.*; public class FileList implements Enumeration{
String MyFileList[];
int current=0;
public FileList(String filelist[]){
MyFileList=filelist;
} public FileList(){
MyFileList=null;
} public boolean hasMoreElements() {
if(MyFileList==null)
return false;
if(current<MyFileList.length)
return true;
else
return false;
} public Object nextElement() {
FileInputStream in=null;
if(!hasMoreElements())
return null;
try {
in = new FileInputStream(MyFileList[current]);
current++;
} catch (FileNotFoundException e) {
System.out.println("Can't open file:"+MyFileList[current]);
}
return in;
} }
package io;
import java.io.*;
import java.util.*;
public class MySequenceIn { public static void main(String[] args) {
FileList myList = new FileList(args);
SequenceInputStream sin;
FileOutputStream fout;
int data;
try {
sin = new SequenceInputStream(myList);
fout = new FileOutputStream(FileDescriptor.out);
while((data=sin.read())!=-1)
fout.write(data);
sin.close();
fout.close();
} catch (FileNotFoundException e) {
System.out.println("文件无法打开");
} catch (IOException e) {
System.out.println("读写文件有误");
} } }
5.管道输入输出流
管道输入输出流示例。
package io;
import java.io.*;
//本线程类用于发送数据
public class ThreadOut extends Thread {
PipedInputStream pin;
PipedOutputStream pout;
byte data[]={1,2,3};
public ThreadOut(PipedInputStream in, PipedOutputStream out){
pin = in;
pout = out;
} public void run(){
try {
pout.write(data);
} catch (IOException e) {
// e.printStackTrace();
}
}
}
package io;
import java.io.*;
//本线程类用于接收数据
public class ThreadIn extends Thread {
PipedInputStream pin;
PipedOutputStream pout;
int data;
public ThreadIn(PipedInputStream in, PipedOutputStream out){
pin = in;
pout = out;
} public void run(){
try {
while((data=pin.read())!=-1)
System.out.println(data);
} catch (IOException e) {
// e.printStackTrace();
}
}
}
package io;
import java.io.*;
public class MyPipedIO { public static void main(String[] args) {
PipedInputStream mypin=null;
PipedOutputStream mypout=null;
try {
mypin = new PipedInputStream();
mypout = new PipedOutputStream();
mypin.connect(mypout);
ThreadOut tout = new ThreadOut(mypin, mypout);
ThreadIn tin = new ThreadIn(mypin, mypout);
tout.start();
tin.start();
} catch (IOException e) {
System.out.println("无法连接管道");
} } }
6.过滤输入输出流
数据输入输出流使用示例。
package io;
import java.io.*;
public class MyDataIO { public static void main(String[] args) {
DataOutputStream dout;
DataInputStream din;
try {
dout = new DataOutputStream(new FileOutputStream("testfile.dat"));
dout.writeInt(100);
dout.writeLong(123456789);
dout.writeDouble(1.23456);
dout.writeFloat(1.2f);
dout.writeBoolean(true); din = new DataInputStream(new FileInputStream("testfile.dat"));
System.out.println(din.readInt());
System.out.println(din.readLong());
System.out.println(din.readDouble());
System.out.println(din.readFloat());
System.out.println(din.readBoolean());
} catch (FileNotFoundException e) {
System.out.println("没有找到文件!");
} catch (IOException e) {
System.out.println("无法正常创建输入输出流数据!");
} } }
Java输入输出处理技术1的更多相关文章
- Java输入输出处理技术2
7.从键盘输入 从键盘输入一行字符,并显示到屏幕上. package io; import java.io.*; public class ReadAndWrite { public static v ...
- java的poi技术读取Excel数据到MySQL
这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 ...
- Java 加解密技术系列文章
Java 加解密技术系列之 总结 Java 加解密技术系列之 DH Java 加解密技术系列之 RSA Java 加解密技术系列之 PBE Java 加解密技术系列之 AES Java 加解密技术系列 ...
- java的JSP技术
java的JSP技术 [toc] 1.JSP简介 Jsp技术是用来开发java web的页面显示的,所有MVC模型里面的视图层,所以视图层的开发 jsp不是编程语言,三个英文是java server ...
- java的poi技术写Excel的Sheet
在这之前写过关于java读,写Excel的blog如下: Excel转Html java的poi技术读,写Excel[2003-2007,2010] java的poi技术读取Excel[2003-20 ...
- Java Web编程技术学习要点及方向
学习编程技术要点及方向亮点: 传统学习编程技术落后,应跟著潮流,要对业务聚焦处理.要Jar, 不要War:以小为主,以简为宝,集堆而成.去繁取简 Spring Boot,明日之春(future of ...
- java的poi技术读,写Excel[2003-2007,2010]
在上一篇blog:java的poi技术读取Excel[2003-2007,2010] 中介绍了关于java中的poi技术读取excel的相关操作 读取excel和MySQL相关: java的poi技术 ...
- java的poi技术读取Excel[2003-2007,2010]
这篇blog主要是讲述java中poi读取excel,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx. 读取excel和MySQL相关: ja ...
- java编解码技术,netty nio
对于java提供的对象输入输出流ObjectInputStream与ObjectOutputStream,可以直接把java对象作为可存储 的字节数组写入文件,也可以传输到网络上去.对与java开放人 ...
随机推荐
- 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:fhcq-oa' did not find a matching property.
当你在使用Eclipse运行web项目时,你可能会看到控制台出现: 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Settin ...
- 再议js的传递和深复制
病理 基本类型的传递就是按值传递,比如说 var a = 1; var b = a; b = 3; console.log(a,b);//1,3 很明显,a的值并未因为b的值改变而变化,这是因为a只是 ...
- 为什么Java7开始在数字中使用下划线
JDK1.7的发布已经介绍了一些有用的特征,尽管大部分都是一些语法糖,但仍然极大地提高了代码的可读性和质量.其中的一个特征是介绍字面常量数字的下划线.从Java7开始,你就可以在你的Java代码里把长 ...
- “通用类型系统”(CTS)
一.什么是“通用类型系统”(CTS) 描述类型的定义和行为 二.CTS规范 一个类型可以包含零个或者多个成员1,成员①字段(Field)作为对象状态一部分的数据变量.字段根据名称和类型来区分②方法(M ...
- [java] java中的初始化顺序
先看程序: package init_cls; class A{ {System.out.println("i am in the class A!");} static { Sy ...
- grunt自动化
1.安装模块 npm install grunt -g npm install grunt-cli -g #! --save-dev 既会把模块安装到项目node_modules下,也会安装到依赖文件 ...
- 【10.7校内测试】【队列滑窗】【2-sat】【贪心+栈二分+线段树(noip模拟好题)】【生日祭!】
比较好想的一道题,直接用队列滑窗,因为扫一遍往队列里加东西时,改变的只有一个值,开桶储存好就行了! #include<bits/stdc++.h> using namespace std; ...
- Codeforces Round #280 (Div. 2) E. Vanya and Field 思维题
E. Vanya and Field time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- POJ2155【二维树状数组,区间修改,点查询?】【又被输入输出坑】
这题反反复复,到现在才过. 这道题就是树状数组的逆用,用于修改区间内容,查询点的值. 如果单纯就这个奇偶数来判的话,似乎这个思路比较好理解. 看了一下国家集训队论文(囧),<关于0与1在信息学奥 ...
- Solution for sending Whatsapp via sqlite "INSERT INTO"
I use something similar but thought I'd mention this 'bug' that can happen:when you INSERT '%wa_mess ...