java java的输入输出一串数字,输出这些数字并写出这些数字中最大的数字以及最大数出现的次数,如图:

Java的输入输出与文件读写(一) - Java教程 - 编程入门网
Java的输入输出与文件读写(一)
java的输入输出与文件读写
按照数据的传输方向,流 以是未经加工的原始二进制数据,又可以是经过一定编码处理后符合某种格式规定的
特定数据,即流是由位(bits)组合或者字符(character)构成的序列,如字符流序列、数字流序列。
将数据从外设或外存(如:键盘、鼠标、文件)传递到应用程序的流称为输入流(input stream);将数据从应用程序传递到外存或外设(屏幕、打印机)的流称为输出流(output stream)。即:输入流读取数据(这里指的是应用程序读取数据),输出流写入数据(这里指的是应用程序写入数据)。
流式输入输出的特点:
1、是数据的获取和发送是沿着数据序列顺序进行,每个数据必须等待排在它前面的数据读入或者送出之后才能被读写,每次读写操作处理的都是序列中剩余的未读写数据的第一个,而不能随选择输入输出的位置。
2、采用数据流来处理输入输出使得应用程序的输入输出操作独立于相关设备,每一个应用程序可以用于多个输入输出设备,而不需要对源代码作出任何修改。增强了程序的可移植性。
输入输出流按照处理数据的类型分为:字节流(bate stream)和字符流(character stream)。字节流每次读写8位二进制数,由于它只能讲数据以二进制的方式读写,而不能分解、重组和理解这些数据,所以可以使之变换、恢复到原来的有意义的状态,因此字节流有称为二进制流(binary byte stream)或位流。而字符流一次读写16位二进制数,并将其作为一个字符而不是二进制位来处理。
字节流:处理字节数据(基本类型为InputStream、OutputStream)
字符流:处理字符数据(基本类型为Reader、Writer)
文件类:File,用于对磁盘文件和文件夹的管理。即:File是对文件存储的关注,比如文件最后的修改时间、存储位置等,而流是对文件内容的关注。这是二者的区别。
示例1:在程序中创建一个文本文件file.txt,写入从键盘输入的一串字符,然后再读取该文件并将文本文件的内容显示在屏幕上。
//filename:FileTest.java
import java.io.*;
class FileTest{
public static void main(String[] args){
FileInputStream fis = new FileInputStream(FileDescriptor.in);//声明并创建FileInputStream类型对象,初始化对象为键盘输入
FileOutputStream fos = new FileOutputStream(&d:\\myfile.txt&);//声明并创建FileOutputStream类型对象,初始化对象
System.out.println(&请输入一串字符串,并以 # 结束:&);
while((ch=(char)fis.read()) != '#')//强制类型转换为char并判断
fos.write(ch);
fin.close();
fos.close();
FileInputStream fi = new FileInputStream(&d:\\myfile.txt&);//声明并创建FileInputStream类型对象,初始化对象
FileOutStream fo = new FileOutputStream(FileDescriptor.out);//声明并创建FileOutputStream类型对象,初始化对象
while(fi.avaliable() & 0)
data = fi.read();
fo.write(data);
fi.close();
fo.close();
catch(FileNotFoundException e){
System.out.println(&文件没找到&);
示例2:用FileInputStream和FileOutputStream实现对二进制图像文件的复制
//filename:ImageFileTest.java
import java.io.*;
public Class ImageFileTest{
public static void main(String[] args) throws IOException{
FileInputStream fi = new FileInputStream(&d:\\scenery.jpg);//声明并创建FileInputStream类型的对象,初始化对象
FileOutputStream fo = new FileOutputStream(&d:\\copyScenery.jpg&);//声明并创建FileOutputStream类型的对象,初始化对象
byte [] b = new byte[fi.available()];//创建byte类型的数组
fi.read(b);//将图形文件读入b数组
fo.write(b);//将b数组的数据写入新文件'copyScenery.jpg'
System.out.println(&文件已被复制并更名&);
fi.close();
fo.close();博客分类:
分别统计字符串的数字、字母、空格和其他字符(包括汉字、标点符号)的个数,并计算及字符串的总字符数。
public class CountStr {
* 有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数
* @author Mr.Liao
* 短信发送平台,短信字数控制查询方法
public static void main(String[] args) {
//String str = "adasf AAADFD我是中文,,》123";
//String str = "金马甲高端商品交易平台--2013全城热恋克拉钻石项目预售,18个月,三万起步,年化8%,预购请致电展恒私人财富:";
String str = "展恒理财,2004年在北京成立,是国内最大的理财咨询类机构之一。获得国家颁发的独立基金销售牌照.是2013年中国网球公开赛10大核心赞助商之一。公司成立10年来,在为客户进行全面的家庭财务规划方面积累了十分丰富的经验。目前拥有中高端忠实客户10000多名,配置客户资金超过200亿元,位列行业排名前三强。";
System.out.println("[总字符数1]:"+countSum(str));
System.out.println("--------------------");
System.out.println("[总字符数2]:"+countSum2(str));
System.out.println("--------------------");
System.out.println("[总字符数3]:"+str.length());
public static int countSum(String str) {
int unicodeCount = 0;
int szCount = 0;
int zmCount = 0;
for (int i = 0; i & str.length(); i++) {
char c = str.charAt(i);
if (c &= '0' && c &= '9') {
szCount++;
}else if((c &= 'a' && c&='z') || (c &= 'A' && c&='Z')){
zmCount++;
unicodeCount++;
System.out.println("Unicode:"+unicodeCount);
System.out.println("数字:"+szCount);
System.out.println("字母:"+zmCount);
int sum=szCount+zmCount+unicodeC
public static int countSum2(String str) {
int abccount = 0;
int numcount = 0;
int spacecount = 0;
int othercount = 0;
char[] b = str.toCharArray();
for(int i = 0; i & b. i++){
if(b[i]&='a'&&b[i]&='z'||b[i]&='A'&&b[i]&='Z'){
abccount++;
}else if(b[i]&='0'&&b[i]&='9'){
numcount++;
}else if(b[i]==' '){
spacecount++;
othercount++;
int sum=abccount+numcount+spacecount+
System.out.println("字符串中含有的英文字母数为:" + abccount);
System.out.println("字符串中含有的数字数为:" + numcount);
System.out.println("字符串中含有的空格数为:" + spacecount);
System.out.println("字符串中含有的其他字符为:" + othercount);
控制台结果:
Unicode:132数字:20字母:0[总字符数1]:152--------------------字符串中含有的英文字母数为:0字符串中含有的数字数为:20字符串中含有的空格数为:0字符串中含有的其他字符为:132[总字符数2]:152--------------------[总字符数3]:152
浏览 29021
LiaoJuncai
浏览: 277969 次
来自: 北京
没有147 段
public static final
多谢分享,问题果断解决
删除当前工作目录下的WORKSPACE/.metadata/. ...
:arrow: [i][/i][/b]
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'12:10 提问
JAVA实现:一个数组里有1000个数,依次输出最大的10个数
刚接触JAVA,求各位前辈解答...............
按时间排序
定义一个数组存储这1000个数,先对这1000个数进行由大到小排序,然后输出数组的前十个数。
这个和使用哪种语言的关系不大,这是数据结构的内容,可以有很多种查询方法,你可以看看数据结构里边的查询方式
1、这是一个基本的排序问题,把1000个数按从大到小的顺序排序,之后输出前十个,1000个数可以采用时间复杂度较小的排序算法,快排或者合并;
2、单纯的考虑输出10个数,可以建立一个大小为10的数组并对数组排序,之后遍历1000个数,将数组中最小的数和遍历到的数字进行大小比较,数组
数字大则跳过,小则替换;直至全部遍历结束,之后输出数组就行。
最fancy的做法肯定是用introduction to algorithm 那本书里面的determinic selection 方法。可以达到O(n)的时间复杂度。比其他需要排序的方法O(nlogn)还是要快的。
可以排序后直接输出最大的十个
大量数据输出其中最大的几个数用堆排序
Random random = new Random();
List&Integer& item = new ArrayList&Integer&();
for (int i = 0; i & 1000; i++) {
//System.out.println(Math.abs(random.nextInt()) % 1000);
item.add(Math.abs(random.nextInt()) % 1000);
Collections.sort(item);
for (int i = item.size()-1; i &= item.size()-10; i--) {
System.out.println(item.get(i));
因为数组,所以几种经典的排序方式,例如冒泡排序
for (int i = 0; i & unsorted.L i++)
for (int j = j & unsorted.L j++)
if (unsorted[i] & unsorted[j])
int temp = unsorted[i];
unsorted[i] = unsorted[j];
unsorted[j] =
排序后再输出前十位
排序 -& 遍历(10个)
其他相关推荐

我要回帖

更多关于 java 输入输出 的文章

 

随机推荐