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);
}
}