java数据输出
① java 如何输出数据到TXT文件内
package test;
import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
public class ReadColorTest {
/**
* 读取一张图片的RGB值
*
* @throws Exception
*/
public void getImagePixel(String image) throws Exception {
File fileCar = new File("D:\\car.txt");
FileOutputStream fos = new FileOutputStream(fileCar);
BufferedOutputStream bos = new BufferedOutputStream(fos);
int[] rgb = new int[3];
File file = new File(image);
BufferedImage bi = null;
try {
bi = ImageIO.read(file);
} catch (Exception e) {
e.printStackTrace();
}
int width = bi.getWidth();
int height = bi.getHeight();
int minx = bi.getMinX();
int miny = bi.getMinY();
System.out.println("width=" + width + ",height=" + height + ".");
bos.write(("width=" + width + ",height=" + height + ".\n").getBytes());
System.out.println("minx=" + minx + ",miniy=" + miny + ".");
bos.write(("minx=" + minx + ",miniy=" + miny + ".\n").getBytes());
for (int i = minx; i < width; i++) {
for (int j = miny; j < height; j++) {
int pixel = bi.getRGB(i, j); // 下面三行代码将一个数字转换为RGB数字
rgb[0] = (pixel & 0xff0000) >> 16;
rgb[1] = (pixel & 0xff00) >> 8;
rgb[2] = (pixel & 0xff);
System.out.println("i=" + i + ",j=" + j + ":(" + rgb[0] + ","+ rgb[1] + "," + rgb[2] + ")");
bos.write(("i=" + i + ",j=" + j + ":(" + rgb[0] + ","+ rgb[1] + "," + rgb[2] + ")\n").getBytes());
}
}
}
/**
* 返回屏幕色彩值
*
* @param x
* @param y
* @return
* @throws AWTException
*/
public int getScreenPixel(int x, int y) throws AWTException { // 函数返回值为颜色的RGB值。
Robot rb = null; // java.awt.image包中的类,可以用来抓取屏幕,即截屏。
rb = new Robot();
Toolkit tk = Toolkit.getDefaultToolkit(); // 获取缺省工具包
Dimension di = tk.getScreenSize(); // 屏幕尺寸规格
System.out.println(di.width);
System.out.println(di.height);
Rectangle rec = new Rectangle(0, 0, di.width, di.height);
BufferedImage bi = rb.createScreenCapture(rec);
int pixelColor = bi.getRGB(x, y);
return 16777216 + pixelColor; // pixelColor的值为负,经过实践得出:加上颜色最大值就是实际颜色值。
}
/**
* @param args
*/
public static void main(String[] args) throws Exception {
int x = 0;
ReadColorTest rc = new ReadColorTest();
x = rc.getScreenPixel(100, 345);
System.out.println(x + " - ");
rc.getImagePixel("D:\\car.jpg");
}
}
② java 用户输入指定数据输出该对象的所有属性
String name;//定义一个字符串
name=uesr.next();//输入字符串
if(name.compareTo("罗斯")==0){//String类型的对象的内置比较器;如果返回值为0,name=="罗斯"
.....
}
else if(name.compareTo("小兵")==0){
...
}
③ java中输入输出流如何把数据输出为Excel表格形式
实现代码如下:
import org.apache.poi.hssf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
publicclass CreateCells
{
publicstaticvoid main(String[] args)
throws IOException
{
HSSFWorkbook wb = new HSSFWorkbook();//建立新HSSFWorkbook对象
HSSFSheet sheet = wb.createSheet("new sheet");//建立新的sheet对象
// Create a row and put some cells in it. Rows are 0 based.
HSSFRow row = sheet.createRow((short)0);//建立新行
// Create a cell and put a value in it.
HSSFCell cell = row.createCell((short)0);//建立新cell
cell.setCellValue(1);//设置cell的整数类型的值
// Or do it on one line.
row.createCell((short)1).setCellValue(1.2);//设置cell浮点类型的值
row.createCell((short)2).setCellValue("test");//设置cell字符类型的值
row.createCell((short)3).setCellValue(true);//设置cell布尔类型的值
HSSFCellStyle cellStyle = wb.createCellStyle();//建立新的cell样式
cellStyle.setDataFormat(HSSFDataFormat.getFormat("m/d/yy h:mm"));//设置cell样式为定制的日期格式
HSSFCell dCell =row.createCell((short)4);
dCell.setCellValue(new Date());//设置cell为日期类型的值
dCell.setCellStyle(cellStyle); //设置该cell日期的显示格式
HSSFCell csCell =row.createCell((short)5);
csCell.setEncoding(HSSFCell.ENCODING_UTF_16);//设置cell编码解决中文高位字节截断
csCell.setCellValue("中文测试_Chinese Words Test");//设置中西文结合字符串
row.createCell((short)6).setCellType(HSSFCell.CELL_TYPE_ERROR);//建立错误cell
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
}
}
④ java怎么输出不是基础类型的数据
1.java的基本数据类型的声明与使用
java基本数据类型有四类,分别是:
整数型:byte(1字节) short(2字节) int(4字节) long(8字节)
浮点型:float(4字节) double(8字节)
字符型:char(2字节)
布尔型:boolean(1位)
一共8个。 其中整数型有四个,浮点型有两个,字符型一个,布尔型一个。
对于基本数据类型,我们可以不对其进行赋值操作,如果不对其进行赋值,java会自动帮其赋予初始值。
2.类型转换
一般来说,低精度可自动转换为高精度
当然我们也可以强制转换将高精度数值赋给低精度变量,不过强制转换可能出现精度损失的状况
虚线转换可能会有精度损失。
3.输入,输出数据开始只需知道两个语句即可
输入:
Scanner reader = new Scanner(System.in) ;
reader.nextDouble();
这里的nextDouble可以换成nextShort…等等根据数据类型定义。
这里声明java是个严格区分大小写的语言
输出:System.out.println();或System.out.print();
前者和后者的差别就是前者在输出后自动换行,后者不会。
还有 System.out.printf(); 用法和C语言的一样。
示例:
import java.util.Scanner;
/**
* 让程序获取控制台用户输入的数据
*/
public class ScannerStudy {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入数据,回车结束:");
String firstIn = in.nextLine();
System.out.println("获取控制台用户输入的字符串: "+firstIn);
int firstInt = in.nextInt();
System.out.println("获取控制台用户输入的int类型的数据: "+firstInt);
int firstLong = in.nextInt();
System.out.println("获取控制台用户输入的Long类型的数据: "+firstLong);
double firstDouble = in.nextDouble();
System.out.println("获取控制台用户输入的double类型的数据:"+firstDouble);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
4.数组
在这里数组的使用有几个步骤:
4.1.声明
数组的元素类型 数组名[];
数组的元素类型 [] 数组名;
例如:float boy[]; (注意java不允许在声明数组中的方括号内指定数组元素的个数)
4.2.为数组分配内存空间
数组名 = new 数组元素的类型[数组元素的个数];
例如:boy = new float[4];
3.数组的使用
public class ArrayStudy {
public static void main(String[] args) {
int[] nums;
nums = new int[5];
nums[0] = 1;
nums[1] = 2;
System.out.println("nums[0]: "+nums[0]);
System.out.println("nums[1]: "+nums[1]);
}
}
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
二,实践积累部分
1.数据的转换与赋值问题
只需弄懂下面程序的错误点即可:
public class E
{
public static void main(String args[])
{
int x = 8; 【代码1】
byte b =128; 【代码2】//超出范围
x = 12L; 【代码3】//12L表示long型数,需要强制转换才可以赋给int型
long y = 8; 【代码4】//虽然可以,但不规范
float z = 6.89;【代码5】//float类型赋值应该在数的后面加f
}
}
2.注意System.out.println()与System.out.print()的区别
虽然二者都是输出函数,但前者是输出自动换行,后者则不换行
3.要熟悉数组工作原理
下面的例子较好的说明了数组的基本工作原理:
public class E
{
public static void main(String args[])
{
int [] a={10,20,30,40},b[] = {{1,2},{4,5,6,7}};
b[0] = a;
b[0][1] = b[1][3];
System.out.println(b[0][3]);
System.out.println(a[1]);
}
}
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
如果你能正确推算出这个程序的输出结果,那么你对数组的内部工作原理了解不错了。
正确答案是:407
⑤ java如何从命令行输入和输出数据
import java.util.*;
import java.io.*;
import javax.swing.JOptionPane;
public class SysIn
{
public static void main(String [] args)
{
【java.util包中的Scanner类】
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一串字符:");
String firStr = sc.next();
System.out.println("你输入的是" +firStr);
注意事项:next()读取一个字符串,该字符串在一个空白符之前结束
(5)java数据输出扩展阅读
其他java从命令行输入和输出数据
1、【java.io包中的BufferedReader类】
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入第二串字符:");
String secStr=null;
try
{
secStr=bf.readLine();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("你输入的是" + secStr);
注意事项:nextByte()读取一个byte类型整数--其他类型整数类推
2、【调用 javax.swing.JOptionPane 类】
String jop = JOptionPane.showInputDialog
(null,"Please Input:","InputDialog",JOptionPane,QUESTION_MESSAGE);
System.out.println("你输入的第三串字符:“ + jop);
}
}
注意事项:nextLine()读取一行文本
⑥ java的输入输出中,如果数据相对于外部文件是出去了,我们称之为输出操作对吗
不是的,输入/输出是相对于程序说的。把数据传递给程序的变量,就是输入;把程序变量的值,发出去(给显示器或者文件),就是输出。
⑦ 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 数据输出到txt文件
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
public class TestBaiKnow {
public static void main(String[] args) throws IOException {
FileOutputStream fs = new FileOutputStream(new File("D:\\text.txt"));
PrintStream p = new PrintStream(fs);
p.println(100);
p.close();
}
}
//简单的一个例子,来模拟输出
⑨ java 用数组的方式接收用户输入的数 并输出数组 求怎么实现
publicclassUtil{
publicstaticvoidmain(String[] args){
java.util.Scannersc=newjava.util.Scanner(System.in);
String[] arr =newString[5];
for(inti =0; i < arr.length; i++){
arr[i] = sc.next();
}
//这里使用util.Arrays的代码输出数组
System.out.println(java.util.Arrays.toString(arr));
}
}
(9)java数据输出扩展阅读:
java中接受用户输入的其他方法
package 控制台接受输入;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.Buffer;
import java.util.Scanner;
public class InputCode {
public static void main(String[] args) throws IOException {
/*
* Scanner类中的方法
* 完美
*/
Scanner input =new Scanner(System.in);
System.out.println("please input your name ");
String name=input.nextLine();
System.out.println(name);
/*
* 缺点:只能接受用户输入的一个字符
*/
System.out.println("enter your name");
char name1 = 0;
try {
//inputstream中的read()方法放回输入流中下一个字符
name1 = (char) System.in.read();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(name1);
/*
* InputStreamReader和BufferedReader方法
* 优点:可以获取字符串
* 缺点:获取的是int或者string人需要强转
*/
//通常,Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求。因此,建议用 BufferedReader
//包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。例如,
//BufferedReader in= new BufferedReader(new FileReader("foo.in"));
System.out.println("enter your name");
InputStreamReader input1=new InputStreamReader(System.in);
BufferedReader in=new BufferedReader(input1);
String name2=in.readLine();
System.out.println(name2);
}
}